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());
    
    }
    

Anmelden zum Antworten