GRAPH	EQU		20H				
TREE	EQU		21H				
QUEUE	EQU		1FH					
NODE	EQU		30H				
FG		EQU		40H				
POINT	EQU		80H				
LENGTH	EQU		40H					
D		EQU		05H				
F		DATA	3CH				
R		DATA	3DH				
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						
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:	
CLR		A
MOVX	@R0,A
INC		R0
DJNZ	R7,CLRF
LCALL	SETNULL						
MOV	A,#0						
LCALL	DATAIN						
MOV	A,#0							
LCALL	DATAIN						
MOV	A,K							
LCALL	DATAIN						
LCALL	BTREE					
INC		K							
MOV	A,K
CJNE	A,N,TEST1					
STOP:	LJMP	STOP
BTREE:	
MOV	A,F							
XRL		A,R
JZ		BFSEND						
LCALL	DATAOUT						
MOV	R4,A
LCALL	DATAOUT						
MOV	R5,A
LCALL	DATAOUT					
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						
CPL		ACC.6					
MOV	DPL,A
MOV	A,R5						
MOVX	@DPTR,A						
MOV	A,DPL
CPL		ACC.6					
MOV	DPL,A
INC		DPTR
MOV	A,R2
ADD		A,#FG
MOV	R1,A
MOV	A,#0FFH
MOVX	@R1,A					
MOV	A,R2						
DEC		A
MOV	B,#D
MUL		AB
MOV	R1,A	;开始查邻接子表
LOOP:	
MOVX	A,@R1					
JZ		BTREE						
MOV	R3,A							
ADD		A,#FG
MOV	R0,A
MOVX	A,@R0						
JNZ		LOOPE						
MOV	A,R2							
LCALL	DATAIN						
MOV	A,R5							
INC		A						
LCALL	DATAIN						
MOV	A,R3							
LCALL	DATAIN						
MOV	A,#1
MOVX	@R0,A						
LOOPE:	
INC		R1							
LJMP	LOOP						
BFSEND:	
RET								
SETNULL:
MOV	A,#0FFH
MOV	F,A							
MOV	R,A							
RET								
DATAIN:	
PUSH	DPH
PUSH	DPL
INC		R						
MOV	DPL,R
MOV	DPH,#QUEUE
MOVX	@DPTR,A						
POP		DPL
POP		DPH
RET								
DATAOUT:
PUSH	DPH
PUSH	DPL
INC		F							
MOV	DPL,F
MOV	DPH,#QUEUE
MOVX	A,@DPTR					
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



