Binärbaum
-
Hallo
EDIT:
Könnt ihr den Beitrag ins Java forum verschieben
hab mich verklickt beim erstellenwir müssen in der Schule einen binärbaum schreiben
einen erstellen hab ich schon geschaffthier der code
Demo Klasse:public class Demo { /** * @param args */ public Demo() { int array[] = {7,3,8,5,9,1,11,12,2,7}; BiBaum b = new BiBaum(); for (int i = 0; i< array.length; i++) { b.einfuegen(array[i]); } } public static void main(String[] args) { // TODO Auto-generated method stub new Demo(); } }
Die Binärbaum Klasse
public class BiBaum { public Knoten Wurzel = new Knoten(); public void einfuegen(int wert) { if (Wurzel.value == 0) { Wurzel.value = wert; return; } Knoten k = sucheKnoten(wert, Wurzel); if (k == null) //Bei Fehler return; k.value = wert; } public Knoten sucheKnoten (int wert, Knoten vater) { if (wert == vater.value) return vater; //Bei schon eingefŸgter Zahl if(wert > vater.value) { if (vater.rson == null) { vater.rson = new Knoten(); return vater.rson; } else { return sucheKnoten(wert, vater.rson); } } else if(wert < vater.value){ if (vater.lson == null) { vater.lson = new Knoten(); return vater.lson; } else { return sucheKnoten(wert, vater.lson); } } return null; // Fehler } }
Die Knoten Klasse
public class Knoten { public Knoten lson; public Knoten rson; public int value; public Knoten() { this.value = 0; } }
Wir müssen es ohne gegebene Klassen machen
Ich weiss nicht wie ich einen knoten löschen soll und den symetrischen nachfolger einfügen
könnt ihr mir paar tipps geben ich komm einfach nicht drauf
bin schon voll depri
-
Dein Code ist Java und kein C++.
-
Args, was für eine Sprache ist denn das? Sieht für mich eher nach C# aus.
Ansonsten: Du mußt die Kinder des gelöschten Knotens so umhängen, daß wieder ein Binärbaum entsteht. Schau dir dazu z.B. diesen Artikel an.
-
Das es java ist ist mir klar
habs ausversehen in diesen bereich geschrieben
hab ja dazu geschrieben das es verschoben werden soll
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Java verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.