miért ez a java kód nem működik?

szavazat
0

Én ezt a kódrészletet

class bst {
  public node root=null;

  bst() {
    root=null;
  }

  public void insert(int data) {  
    insert(this.root,data);
  }

  private void insert(node ro,int data) {
    if (ro==null) {
      print (root is null);
      ro=new node(data);
    } else if (data>ro.data)
      insert(ro.right,data); 
    else
      insert(ro.left,data);
  }

  private void print (String str) 
  {
    System.out.println(str);
  }
}

Mikor hívja a insertfunkció, mint insert(5); insert(8);azt alwaty nyomatok root is null.

mi a baj??

A kérdést 17/01/2010 15:31
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
8

A probléma az, hogy roa változó belül a insertmódszer csak egy példányt a hivatkozás bst.ro. Azt jelenti, hogy ha vissza a rováltozó belül a módszer, csak a másolatot a hivatkozási fog mutatni az új ro , az eredetileg átadott objektum ugyanaz marad.

A kérdés az, hogy a felső 1 paraméterátadási FAQ. Magam már válaszolt erre a kérdésre többször is. Check it out .

Válaszolt 17/01/2010 15:33
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more