Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Pascal -Binären Baum/Rekursion » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Pascal -Binären Baum/Rekursion
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
sammmy28
Grünschnabel


Dabei seit: 31.10.2007
Beiträge: 1

Pascal -Binären Baum/Rekursion Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 13:37 sammmy28 ist offline E-Mail an sammmy28 senden Beiträge von sammmy28 suchen Nehmen Sie sammmy28 in Ihre Freundesliste auf
Tobias
Routinier


Dabei seit: 18.09.2006
Beiträge: 324

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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:

[latex]\operatorname{Knotenzahl}(T) = 1 + \operatorname{Knotenzahl}(\text{linker Teilbaum von } v) +\operatorname{Knotenzahl}(\text{rechter Teilbaum von } v) [/latex]

berechnen.
31.10.2007 14:51 Tobias ist offline E-Mail an Tobias senden Beiträge von Tobias suchen Nehmen Sie Tobias in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Pascal -Binären Baum/Rekursion