(急!)二叉树遍历出现的问题,请高手帮忙看一下!在线等待!
那位高手帮我看看这程序 用汇编实现二叉树 先提示用户输入 再三种遍历方式显示 到底哪错了 总出现 symbol not definded:RIGHT 如果把LIFT PROC 跟RIGHT PROC 对调一下又出现symbol not definded:LIF
.MODEL SMALL
.STACK 64
.DATA
;===================================================
.CODE
BT DB 63 DUP(0)
notice1 DB 'Please enter the root of binary tree,if there is not root press ENTER',0AH,0DH,'$'
notice2 DB 'Dose the''$'
notice3 DB 'have a liftchild? Y/N',0AH,0DH,'$'
notice4 DB 0AH,0DH,'Please input the value',0AH,0DH,'$'
notice5 DB 'have a rightchild? Y/N',0AH,0DH,'$'
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
;------------------create root--------------------
MOV AH,09H
MOV DX,OFFSET notice1;Please enter the root of binary tree,if there is not root press ENTER
INT 21H
MOV AX,0100H
INT 21h
CMP AL,0DH
JNZ EXIT
MOV DI,0H
MOV BT[DI],AL
MOV SI,OFFSET BT[DI]
;MOV BX,DI
CALL LIFT
;CALL RIGHT
;CALL VIEW
EXIT:
MOV AH,4cH
INT 21H
MAIN ENDP
;---------------------LIFT-------------------------
LIFT PROC
LI:
CMP BT[DI],0
JNZ LI1
INC DI
INC SI
LOOP LI
LI1:
MOV AH,09H
MOV DX,OFFSET notice2;Dose the
INT 21H
MOV AH,09H
MOV DX,SI
MOV AH,09H
MOV DX,OFFSET notice3;have a liftchild? Y/N
INT 21H
MOV AX,0100H
INT 21h
CMP AL,59H ;Y
JNZ TORIGHT
MOV AH,09H
MOV DX,OFFSET notice4;Please input the value
INT 21H
INT 21H
MOV AX,0100H
INT 21h
MOV BX,DI
SHL BX,1
INC BX
MOV BYTE PTR BT[BX],AL
TORIGHT:
;CALL RIGHT
RET
LIFT ENDP
END LIFT
;--------------------RIGHT-------------------------
RIGHT PROC FAR
MOV AH,09H
MOV DX,OFFSET notice2;Dose the
INT 21H
MOV AH,09H
MOV DX,SI
MOV AH,09H
MOV DX,OFFSET notice5;have a rightchild? Y/N
INT 21H
MOV AX,0100H
INT 21h
CMP AL,59H ;Y
JNZ TOLIFT
MOV AH,09H
MOV DX,OFFSET notice4;Please input the value
INT 21H
INT 21H
MOV AX,0100H
INT 21h
MOV BX,DI
SHL BX,1
INC BX
INC BX
MOV BYTE PTR BT[BX],AL
TOLIFT:
INC DI
INC SI
CMP DI,0EH
JO BACK
CALL LIFT
BACK:
RET
RIGHT ENDP
END RIGHT
;--------------------VIEW-------------------------
VIEW PROC
CALL FIRST
CALL MIDD
CALL LAST
RET
VIEW ENDP
END VIEW
END MAIN