Hallo,
es ist schon etwas länger her, dass ich was mit Binärbäumen in Java zu tun hatte. Was ein Binärbaum ist, weiß ich. Ich hab aber keine Ahnung wie ich einen in Java implementiere. Das liegt daran, dass es sehr viele unterschiedliche Ansätze gibt. Soweit ich verstanden habe, ist ein Binärbaum in Java nicht in Collections implementiert, also muss man ihn selber schreiben. Dazu benötigt man die Klasse "BinaryTree" und eventuell eine "Node" Klasse. Ein Binärbaum besteht aus Knoten und Verzweigungen besteht aus einer Wurzel und zwei Kindsknoten bzw. Blätter, also muss die Node Klasse ja drei Elemente haben (left, root, right). Dazu hab ich jetzt Java Code aus dem Buch Algorithmen und Datenbankstrukturen von Gunter Saake, aber was mach ich jetzt mit dem Code? Wie erzeuge ich einen Baum, also wenn ich die Klasse BinaryTree und ihre Methode
aufrufe, dann verlangt sie von mir keine Parameter. Was übersehe ich da gerade?
es ist schon etwas länger her, dass ich was mit Binärbäumen in Java zu tun hatte. Was ein Binärbaum ist, weiß ich. Ich hab aber keine Ahnung wie ich einen in Java implementiere. Das liegt daran, dass es sehr viele unterschiedliche Ansätze gibt. Soweit ich verstanden habe, ist ein Binärbaum in Java nicht in Collections implementiert, also muss man ihn selber schreiben. Dazu benötigt man die Klasse "BinaryTree" und eventuell eine "Node" Klasse. Ein Binärbaum besteht aus Knoten und Verzweigungen besteht aus einer Wurzel und zwei Kindsknoten bzw. Blätter, also muss die Node Klasse ja drei Elemente haben (left, root, right). Dazu hab ich jetzt Java Code aus dem Buch Algorithmen und Datenbankstrukturen von Gunter Saake, aber was mach ich jetzt mit dem Code? Wie erzeuge ich einen Baum, also wenn ich die Klasse BinaryTree und ihre Methode
aufrufe, dann verlangt sie von mir keine Parameter. Was übersehe ich da gerade?
Java:
public class BinaryTree {
static class TreeNode{
TreeNode left = null, right = null;
Object key;
public TreeNode(Object o) {key = o; }
public Object getKey() {return key; }
public TreeNode getLeft() {return left;}
public TreeNode getRight() {return right;}
public void setLeft(TreeNode n) {left =n;}
public void setRight(TreeNode n) {right =n;}
}
private TreeNode head, nullNode;
public BinaryTree(){
head = new TreeNode(null);
nullNode = new TreeNode(null);
head.setRight(nullNode);
nullNode.setLeft(nullNode);
nullNode.setRight(nullNode);
}
}