binärer baum (insert, show)
-
hallo,
meine methoden insert und show eines binären baumes
funzen glaub ich nicht:void insert(int i, Node n) { if ( n == null ) { n = new Node(i); n.setLeft(null); n.setRight(null); return; } if ( i < n.getInfo() ) insert(i, n.getLeft()); else if ( i > n.getInfo() ) insert(i, n.getRight()); else return; } void show(Node n) { if ( n != null ) { show(n.getRight()); System.out.println(n.getInfo()); show(n.getLeft()); } }
in main:
class main { public static void main(String... args) { Tree t = new Tree(new Node(5)); t.insert(4, t.getRoot()); t.insert(6, t.getRoot()); t.insert(9, t.getRoot()); t.insert(1, t.getRoot()); t.show(t.getRoot()); } }
Als Ausgabe erhalte ich auf meiner Konsole nur die 5
Was mache ich falsch?
-
Wenn bei insert "n" null ist, erstellst du zwar einen neuen Knoten, aber der wird niergends gespeichert...
-
Danke!
So gehts jetzt:
void insert(int i, Node n) { if ( i < n.getInfo() ) if ( n.getLeft() == null ) n.setLeft(new Node(i,null,null)); else insert(i, n.getLeft()); if ( i > n.getInfo() ) if ( n.getRight() == null ) n.setRight(new Node(i,null,null)); else insert(i, n.getRight()); }