Thema: Binärbäume

Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Binärbäume

  Alt 20. Apr 2005, 15:33
Auch wenn es jetzt zu spät sein dürfte...:

Zitat von Trouble_Maker:
Also ist die Aussage "Ein Binärbaum hat immer den Grad 2" Falsch und "Ein Binärbaum hat höchstens den Grad 2" Richtig ?!?!?
Nicht ganz. Ein Binärbaum heisst genau so, eben wegen seiner Eigenschaft vom Grade 2 zu sein. Hätte kein Knoten mehr als einen Nachfolger, so wäre es eine Liste, bei 3 Kindern ein ternärer Baum bis hin zu n-ären Bäumen vom Grad n.
=> Ein Binärbaum muss mindestens einen Knoten besitzen der 2 Kinder hat, um binär genannt werden zu können. Etwas verwirrend dabei ist, dass man ja durchaus eine Knotenklasse für binäre Bäume haben kann, aber auf Grund der Umstände nur eine Liste zu Stande kommt. Somit hat man dann einen zur Liste degenerierten Binärbaum.
Natürlich, und das steht einem frei, kann man einen strikten Binärbaum fordern, bei dem durch die Programmlogik gewährleistet wird, dass jeder Knoten genau 2 oder 0 Kinder hat. Das kann je nach Problemstellung evtl. auch mal sinnvoll sein, aber so strikt ist die eigentliche Definition nicht.

Zitat von Trouble_Maker:
Ja genau: daher ist die Aussage "Jeder Knoten hat in einem Binärbaum einen Vater" Falsch ?!?!
Wurzeln stellen in jeder Baumart einen Sonderfall dar. Programmtechnisch sehen sie zwar gleich aus, aber wie du schon sagtest gibt es diesen kleinen Unterschied in der sprachlichen Definition .
Es macht zudem Sinn die Wurzel aus einer ganz normalen Knotenklasse zu generieren, da es z.B. bei AVL-Bäumen durch Rotationen vorkommt, dass eine Wurzel auf einmal ein Knoten wird un umgekehrt. Noch lustiger wird's ja bei B-Bäumen (ekelhafte Dinger die...).

Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat