?? 8.3.5利用鄰接表圖的深度優先生成樹生成算法.txt
字號:
STACK EQU 1FH
BOTTOM EQU 00H
TOP DATA 3DH
GRAPH EQU 20H
TREE EQU 21H
NODE EQU 30H
FG EQU 40H
D EQU 05H
POINT EQU 80H
N DATA 3EH
K DATA 3FH
TST:
MOV SP,#5FH
MOV DPTR,#GRA
MOV P2,#GRAPH
MOV R0,#0
MOV R2,#4AH
CPY:
CLR A
MOVC A,@A+DPTR
MOVX @R0,A
INC DPTR
INC R0
DJNZ R2,CPY
MOV P2,#GRAPH
MOV R0,#NODE
MOVX A,@R0
JZ STOP
INC A
MOV N,A
MOV K,#1
MOV SP,#5FH
TST1:
MOV DPH,#TREE
MOV DPL,#0
MOV R2,#0
CLR A
CLEAR:
MOVX @DPTR,A
INC DPTR
DJNZ R2,CLEAR
MOV P2,#GRAPH
MOV R0,#NODE
MOV DPH,#TREE
MOV DPL,#0
MOVX A,@R0
MOVX @DPTR,A
INC DPTR
MOV R7,A
MOV R0,#FG
INC R0
CLRF:
LR A
MOVX @R0,A
INC R0
DJNZ R7,CLRF
LCALL SETNULL
MOV A,K
MOV R4,#0
LCALL DTREE
INC K
MOV A,K
CJNE A,N,TEST1
STOP: LJMP STOP
DTREE:
MOV R2,A
ADD A,#NODE
MOV R0,A
MOVX A,@R0
MOVX @DPTR,A
MOV A,DPL
CPL ACC.7
MOV DPL,A
MOV A,R4
MOVX @DPTR,A
MOV A,DPL
CPL ACC.7
MOV DPL,A
INC DPTR
MOV A,R2
ADD A,#FG
MOV R0,A
MOV A,#0FFH
MOVX @R0,A
MOV A,R2
DEC A
MOV B,#D
MUL AB
MOV R1,A
SEARCH:
MOVX A,@R1
JZ DFSEND
MOV R3,A
ADD A,#FG
MOV R0,A
MOVX A,@R0
JNZ SEAR1
MOV A,R2
LCALL DPUSH
MOV A,R1
LCALL DPUSH
MOV A,R2
MOV R4,A
MOV A,R3
LCALL DTREE
LCALL DPOP
MOV R1,A
LCALL DPOP
MOV R2,A
SEAR1:
INC R1
LJMP SEARCH
DFSEND:
ET
SETNULL:
MOV A,#BOTTOM
MOV TOP,A
RET
DPUSH:
INC TOP
PUSH DPH
PUSH DPL
MOV DPH,#STACK
MOV DPL,TOP
MOVX @DPTR,A
POP DPL
POP DPH
RET
DPOP:
PUSH DPH
PUSH DPL
MOV DPH,#STACK
MOV DPL,TOP
MOVX A,@DPTR
DEC TOP
POP DPL
POP DPH
RET
;2000H: 02 08 00 00 00
;2005H: 01 03 09 00 00
;200AH: 02 04 06 00 00
;200FH: 03 05 00 00 00
;2014H: 04 06 07 00 00
;2019H: 03 05 07 09 00
;201EH: 05 06 08 00 00
;2023H: 01 07 09 00 00
;2028H: 02 06 08 00 00
;2030H: 09 41 42 43 44 45 46 47 48 49
;2040H: 00 00 00 00 00 00 00 00 00 00
GRA:
DB 02H,08H,00H,00H
DB 00H,01H,03H,09H
DB 00H,00H,02H,04H
DB 06H,00H,00H,03H
DB 05H,00H,00H,00H
DB 04H,06H,07H,00H
DB 00H,03H,05H,07H
DB 09H,00H,05H,06H
DB 08H,00H,00H,01H
DB 07H,09H,00H,00H
DB 02H,06H,08H,00H
DB 00H,00H,00H,00H
DB 09H,41H,42H,43H
DB 44H,45H,46H,47H
DB 48H,49H,00H,00H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -