Speicher und Zeiger in einem BST

stimmen
0

In einem binären Suchbaum, der ein einfaches Objekt nimmt ....., wenn der Getter und Setter-Methoden für die linke Erstellen, rechten und Elternteil. Es gibt Bedenken über das, was geschieht, wenn ein Elternknoten festgelegt ist. Code unten ...

Der Code:

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

Der Beispielcode, der den Code inspiriert:

 public void setParent(Node parent) {
  this.parent = parent;
 }
Veröffentlicht am 14/11/2011 um 02:47
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
2

Sie schaffen, was im Wesentlichen ein Klon des übergeordneten Objekts ist. Dies unterscheidet sich von nur den Zeiger auf das übergeordnete Objekt zu speichern.

Offensichtlich werden Sie durch Duplizieren das übergeordnete Objekt mehr Speicherplatz einnehmen. Noch wichtiger ist, sind das Duplizieren Sie nicht die Referenzen der Eltern. Also, wenn Sie versuchen, den Baum zu durchqueren, zu einem Knoten der Eltern gehen, dann versuchen, seine anderen Kinder zu besuchen, können Sie eine Reihe von Null-Zeiger ziehen.

Das this.parentist ein Hinweis auf den aktuellen parentObjektzeiger.

Es ist nicht wirklich bedeutet , dass thisein Elternteil ist. In der Tat this.parentwird das lokal zu unterscheiden parentZeiger aus dem eingehenden Parameter 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
    }
}
Beantwortet am 14/11/2011 um 02:52
quelle vom benutzer

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