Spaß mit Binary Trees

Hi,

ich habe es nun mit wenig hilfe (->eigenständigkeit) geschafft, ein binarytree zu coden.
mir ist direkt klar geworden, das so ein dingen sehr speicherintensiv ist.

ich poste mal die EXE und morgen direkt der source-code (ich habe morgen code-abgabe von der FH und will das mir ned public "versauen", nachher wird mir unsterstellt ich würde fremd-code benutzten....)

was zu tun ist:
einfach nach dem start 0 eingeben und dann die 666 :D vorher noch den task manager anschmeißen :D viel spaß *gg*

achso:
das programm ist eine Binary Tree, mit folgenden Traversiuerungen:
> LevelOrder
> InOrder
> PreOrder
> PostOrder
außerdem kann man Niveaus ausgeben =]


und wenn man das teil mit 100mio werten füllt (alles integer) sollte der PC (windows zumindest) irgendwann sehr langsam werden :D
 
Hallo!

Kannst du mir erklären, was ein Binary Tree mit den unterschiedlichen Eigenschaften, die du aufgezählt hast, eigentlich ist?!

Wiki hilft nicht wirklich weiter und einen Sinn erkenne ich in den Trees auch nicht :)

Wäre nett, danke!

Gruß
Felix
 
Ein Binaerbaum ist eigentlich nur aus einer art von elementen aufgebaut.
Diese nennen wir mal Container(kannst du auch klasse nennen wenndu willst)
Dieser Container besitzt mindestens das Element fuer den Knoten, einen linken und einen rechten Nachfolger.
Je nach implementation gibt es auch noch einen Vorgaenger, ist aber kein muss.
du ordnest einen Binaerbaum wie folgt:
alle linken Nachfolger sind kleiner als ihr Elternknoten und alle rechten Nachfolger sind groesser.
Dies erlaubt idealerweise laufzeit log n durch einen ausgeglichenen Baum, da dieser Baum die Hoehe log n hat.
Man kann natuerlichauch binaerbaeume bauen welche sich wie eine liste verhalten aber das geht mehr in die Analyse solcher ADT´s.
Levelorder bedeutet nun das du die Elemente der ebenen von lInks nach rechts von oben nach unten hintereinander hinschreibst.
Preorder bedeutet das du immer erst den Elternknoten und dann den linken und dann den rechten nachfolger hinschreibst, wenn diese natuerlich auch elternknoten sind musst du dann auch erst den linken davon aufschreiben und so weiter, ist also rekursive definiert genauso wie der rest der gleich noch kommt.
Postorder bedeutet das du erst linken und rechten Nachfolger hinschreibst und dann erst den Elternknoten.
Inorder ist in soweit schoen weil diese Ordnung es dir erlaubt aus einem Binaerbaum eine geordnete Liste zu machen.
das bedeutet also das du erst den linken Nachfolger dann den Elternknoten und dann den Rechten knoten hinschreibst, ebenfalls rekursive auf die einzelen knoten definiert.
mfg

sw33t

//edit:
hier noch ein bischen Futter
link1
link2
link3


//edit2
Ich seh gerade:
Der source ist immer noch nicht da....
 
Original von xblax
Original von sw33tlull4by
//edit2
Ich seh gerade:
Der source ist immer noch nicht da....

Der Code wurde in einem anderen Thread gepostet: fertig Programmierter Binärer Suchbaum mit Templates

hi!
erstmal danke das ihr die erklärung vorgenomme habt;
und sorry das ich nicht in diesem thread den code hinterlassen habe, aber dafür habe ich ja einen anderen Thread erstellt... ;-)
wollte den link auch hier posten, aber xblax kam mir (zum glück) zuvor ^^
 
Zurück
Oben