wie kann ich durch einen baum iterieren Java?
package ListenInJava.Baume;
public class TreeNode {
int data;
TreeNode left;
TreeNode right;
TreeNode(int data){
this.data = data;
this.left = null;
this.left = null;
}
}
package ListenInJava.Baume;
public class Tree {
TreeNode root;
Tree (){
root = null;
}
public void add(int data){
TreeNode t1 = new TreeNode(data);
if(root == null){
root = t1;
return;
}
TreeNode help = root;
while(help != null){
if(help.data > t1.data){
if(help.left == null){
help.left = t1;
return;
}
help = help.left;
} else{
if(help.right == null){
help.right = t1;
return;
}
help = help.right;
}
}
return;
}
}
ich möchte dann den baum in form von:
root
left right
usw. haben, aber wie genau könnte ich denn durch den baum iterieren mit einer schleife?
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Java, Programmiersprache, Programmieren & Softwareentwicklung
Dafür brauchst du einen Stack oder eine Queue. Am betsen programmierst du das so, dass die Datenstruktur austauschbar ist, dann kannst du zwischen Breiten- und Tiefensuche wechseln indem du die Datenstruktur austauschst.
Im Prinzip arbeitest du ein Element deiner Datenstruktur nach dem anderem ab. Beim abarbeiten legst du die Kinder des Elements in die Datenstruktur.
Das sorgt für eine Preorder-Reihenfolge (wie du sie möchtest). Inorder und Postorder sind etwas schwieriger.