Moin Leute,
Ich bräuchte mal eure Hilfe.
Ich möchte einen Text in einen Binären Suchbaum einlesen. Am Ende soll er Mehrfacheinträge berücksichtigen ( z.B. drei mal das Wort "Hallo"), soweit bin ich allerdings noch nicht.
Ich stecke Momentan an einer anderen Stelle.
Ich lese eine Textdatei mittels BufferedReader ein :
Hinter filename steckt der Dateipfad zu einem Textdokument welches unsortiert Wörter und Zeichen jeweils eins in einer Zeile gespeichert hat.
Mein Binärbaum sieht wie folgt aus :
Wie könnte ich prüfen ob mein Baum alles richtig abgespeichert hat? Dazu müsste ich den Baum ja komplett durchsuchen, wie printe ich das Ergebnis leserlich aus?
Ich bräuchte mal eure Hilfe.
Ich möchte einen Text in einen Binären Suchbaum einlesen. Am Ende soll er Mehrfacheinträge berücksichtigen ( z.B. drei mal das Wort "Hallo"), soweit bin ich allerdings noch nicht.
Ich stecke Momentan an einer anderen Stelle.
Ich lese eine Textdatei mittels BufferedReader ein :
Java:
String input;
BinaryTree tree = new BinaryTree();
BufferedReader in = new BufferedReader(new FileReader(filename));
while (in.ready()) {
input = in.readLine();
tree.insert(input);
Mein Binärbaum sieht wie folgt aus :
Java:
public class BinaryTree {
static class TreeNode {
TreeNode left;
TreeNode right;
Object key;
public int compareKeyTo(Comparable c) {
return (key == null ? -1 : ((Comparable) key).compareTo(c));
}
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;
}
public String toString() {
return key.toString();
}
}
private TreeNode head;
private TreeNode nullNode;
public BinaryTree() {
head = new TreeNode(null);
nullNode = new TreeNode(null);
head.setRight(nullNode);
nullNode.setLeft(nullNode);
nullNode.setRight(nullNode);
}
protected TreeNode findNode(Comparable c) {
TreeNode n = head.getRight();
while (n != nullNode) {
int cmp = n.compareKeyTo(c);
if (cmp == 0)
return n;
else
n = (cmp > 0 ? n.getLeft() : n.getRight());
}
return null;
}
public boolean find(Comparable c) {
return (findNode(c) != null);
}
public boolean insert(Comparable c) {
TreeNode parent = head;
TreeNode child = head.getRight();
while (child != nullNode) {
parent = child;
int cmp = child.compareKeyTo(c);
if (cmp == 0)
return false;
else
child = (cmp > 0 ? child.getLeft() : child.getRight());
}
TreeNode node = new TreeNode(c);
if (parent.compareKeyTo(c) > 0)
parent.setLeft(node);
else
parent.setRight(node);
node.setLeft(nullNode);
node.setRight(nullNode);
return true;
}
}
Wie könnte ich prüfen ob mein Baum alles richtig abgespeichert hat? Dazu müsste ich den Baum ja komplett durchsuchen, wie printe ich das Ergebnis leserlich aus?