Bu java kod çalışmıyor neden?

oy
0

Bu kod parçası var

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

Ben çağırdığınızda insertgibi işlev insert(5); insert(8);alwaty baskılar buna root is null.

sorun ne??

Oluştur 17/01/2010 saat 15:31
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
8

Senin sorunun olmasıdır roiçindeki değişken insertyöntemine atıfta sadece bir kopyasıdır bst.ro. Eğer varsa o Anlamı resetro yönteminin içine değişken, referans sadece kopya işaret edecektir yeni ro , orjinal geçti nesne aynı kalacaktır.

Sorunuz Parametre Geçme SSS üst 1'dir. Kendimi zaten bir kere daha bu soruyu daha cevap verdi. Şuna bakın .

Cevap 17/01/2010 saat 15:33
kaynak kullanıcı

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