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