Java Binärbaum mit Algorithmus erstellen?
Hallo, ich möchte für ein Projekt einen Binärbaum erstellen, der eine bestimmte Ordnung hat:
Ich habe zum Beispiel folgenden Input:
String pfad = "..-.-";
Und dann soll ein neuer Teilbaum bei der Stelle erstellt werden, die im String steht:
for(int i=0;i<pfad.length();i++ {
if(pfad.charAt(i) == '.' {
<Gehe einemal nach links>
}else {
<Gehe einemal nach rechts>
}
}
Ich habe mir gedacht, dass ich mit dem ersten Level beginne und dann immer weiter nach unten gehe. Der Teilbaum bei "..-." sollte also schon da sein, wenn der Pfad "..-.-" aufgerufen wird. Mein Problem ist, dass ich die Teilbäume nur nacheinander erstellen kann, z.B:
wurzel.getLeftTree().getRightTree().setLeftTree(<Content>)
aber wie man den Baum mit einen Algorithmus erstellen kann, weiß ich leider nicht. Ich hoffe mir kann jemand weiterhelfen.
1 Antwort
Sobald du anfängst, durch deinen String zu iterieren, musst du parallel auch mit im Baum laufen und stets den aktuellen Knoten ermitteln (angefangen bei der Wurzel). Wenn es ihn nicht gibt, erstellst du ihn.
Pseudocode:
currentNode = root
if currentNode == null:
currentNode = new Node(...)
for letter in word:
if letter == '.':
nextNode = currentNode.getLeft()
if nextNode == null:
nextNode = new Node(...)
currentNode.add(nextNode)
currentNode = nextNode
else:
// same logic for right ...