Pascal -Binären Baum/Rekursion |
31.10.2007, 13:37 | Auf diesen Beitrag antworten » |
sammmy28 | Pascal -Binären Baum/Rekursion so ich soll die anzahl der Knoten eines binärbaum durch Rekursion(eigener functionsaufruf in der function)herausfinden(function BBKnotenzahl) So ich verstehe diese aufgabe - weiß aber aber nicht wie man die knoten berechnen kann. wer kan mir weiterhelfen bzw. hilfe geben? ---------- program TesteBBKnotenzahl (input, output); type tNatZahl = 0..maxint; tRefBinBaum = ^tBinBaum; tBinBaum = record info : integer; links : tRefBinBaum; rechts : tRefBinBaum; end; var Wurzel : tRefBinBaum; Anzahl : integer; functiofunction BBKnotenzahl (n BBKnotenzahl ( inRefWurzel : tRefBinBaum) : tNatZahl; { bestimmt die Anzahl der Knoten des Binaerbaumes, auf dessen Wurzel inRefWurzel zeigt } procedure BBKnotenEinfuegen ( inZahl : integer; var ioWurzel : tRefBinBaum); { fuegt in den Suchbaum, auf dessen Wurzel ioWurzel zeigt, ein Blatt mit Wert inZahl an. } var Zeiger : tRefBinBaum; begin if ioWurzel = nil then begin new (Zeiger); Zeiger^.Info := inZahl; Zeiger^.links := nil; Zeiger^.rechts := nil; ioWurzel := Zeiger end { if } else { ioWurzel <> nil } if inZahl < ioWurzel^.info then BBKnotenEinfuegen (inZahl, ioWurzel^.links) else BBKnotenEinfuegen (inZahl, ioWurzel^.rechts); end; { BBKnotenEinfuegen } procedure BBAufbauen (var outWurzel : tRefBinBaum); { Liest eine Folge von Integer-Zahlen ein (0 beendet die Eingabe, gehoert aber nicht zur Folge) und speichert die Folge in einem binren Suchbaum. } var Zahl : integer; begin outWurzel := nil; { mit leerem Baum initialisieren } read (Zahl); while Zahl <> 0 do begin BBKnotenEinfuegen (Zahl, outWurzel); read (Zahl) end end; { BBAufbauen } begin writeln('Bitte integer-Zahlen eingeben (0=Ende):'); BBAufbauen (Wurzel); { 2 mal aufrufen wie bei Aufg. 1 } Anzahl := BBKnotenzahl (Wurzel); Anzahl := BBKnotenzahl (Wurzel); writeln ('Der Baum hat ', Anzahl, ' Knoten.'); end. { TesteBBKnotenzahl } |
|
|
31.10.2007, 14:51 | Auf diesen Beitrag antworten » |
Tobias | Benutze doch bitte die Code-Umgebung, wenn du schon Code posten willst. Die Anzahl der Knoten eines Baumes T mit Wurzel v kann man einfach durch: berechnen. |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|