Pamięć i wskaźniki w BST

głosy
0

W binarnym drzewie wyszukiwania, które ma prosty obiekt ..... podczas tworzenia getter i setter metod lewej, prawej i rodzica. Istnieją obawy, co się dzieje, gdy węzeł nadrzędny jest ustawiona. Kod poniżej ...

Kod:

 public void setParent(Person parent) {
  parent = new Person( parent.getName(), parent.getWeight());

Przykładowy kod, który zainspirował kod:

 public void setParent(Node parent) {
  this.parent = parent;
 }
Utwórz 14/11/2011 o 02:47
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
2

Podczas tworzenia tego, co jest w zasadzie klonem obiektu nadrzędnego. To właśnie różni się od zapisywania wskaźnik do obiektu nadrzędnego.

Oczywiście, będziemy przyjmować więcej miejsca w pamięci przez powielenie obiektu nadrzędnego. Co ważniejsze, nie jesteś powielanie referencje rodzica. Więc jeśli starają się przechodzić przez drzewa, przejdź do rodzica węzła, a następnie spróbuj odwiedzić swoich innych dzieci, narysować kilka zerowych wskaźników.

this.parentJest odniesienie do obecnego obiektu parentwskaźnika.

To nie oznacza, że rzeczywiście thisjest rodzicem. W rzeczywistości, this.parentjest używany do rozróżnienia lokalny parentwskaźnik od parametru wejściowego parent.

class Person{
    Person parent; // <---- this is the "this.parent" attribute, and is initially undefined
    public void setParent(Person parent){ // <---- the "Person parent" on this line is an incoming parameter
        this.parent = parent; //<---- "this.parent" refers to the attribute, and "parent" refers to the parameter
    }
}
Odpowiedział 14/11/2011 o 02:52
źródło użytkownik

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