[Inhalt] [Zurück] [Weiter] [Thema] [Index]

Bäume



Bäume mit FORALL durchlaufen


 

Traversion (Baum A)
	# den gesamten Baum A rekursiv (depth first) durchlaufen.
	# Dazu wird hinter den Baum ("ALL") angegeben
	FORALL b2 IN A ("ALL")
		print (b2.Name()," ",b2.NumChildren())
	ENDFOR
	print (10*"-")

	# nur die direkten Kinder von A durchlaufen
	FORALL b2 IN A
		print (b2.Name()," ",b2.NumChildren())
	ENDFOR
END

#---------------------------------------------------

Dazu (Baum A, String neu) : Baum
   N := Baum (neu)
   A.AddChild (N)
   RETURN N
END

#--------------------------------------------------

AZUR ()
   # Baum anlegen
   A := Baum ("A")
   B := A.Dazu ("B")
   C := A.Dazu ("C")
   D := A.Dazu ("D")
   E := B.Dazu ("E")
   F := B.Dazu ("F")
   G := F.Dazu ("G")
   H := F.Dazu ("H")
   I := F.Dazu ("I")
   J := C.Dazu ("J")
   K := J.Dazu ("K")
   L := K.Dazu ("L")
   M := L.Dazu ("M")
   N := D.Dazu ("N")
   O := D.Dazu ("O")
   P := O.Dazu ("P")
   Q := O.Dazu ("Q")

   # Baum A durchlaufen
   Traversion(A)

END
Ausgabe
A 3
B 2
E 0
F 3
G 0
H 0
I 0
C 1
J 1
K 1
L 1
M 0
D 2
N 0
O 2
P 0
Q 0
----------
B 2
C 1
D 2


toposoft GmbH 1. November 2021