Geheugen en aanwijzingen in een BST

stemmen
0

In een binaire zoekboom dat een eenvoudig object draait ..... bij het maken van de getter en setter methoden voor de linker, rechter en ouder. Er zijn zorgen over wat er gebeurt wanneer een ouder knooppunt is ingesteld. Code blaten ...

De code:

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

Het voorbeeld code die de code geïnspireerd:

 public void setParent(Node parent) {
  this.parent = parent;
 }
De vraag is gesteld op 14/11/2011 om 02:47
bron van user
In andere talen...                            


1 antwoorden

stemmen
2

Je bent het creëren van wat in feite een kloon van het bovenliggende object. Dit is wat anders dan het redden van de aanwijzer naar het bovenliggende object.

Uiteraard zult u het nemen van meer geheugenruimte door het dupliceren van het bovenliggende object. Wat nog belangrijker is, je bent niet dupliceren referenties van de ouders. Dus als je probeert om de boom te doorkruisen, ga dan naar de ouders van een knooppunt, dan proberen om haar andere kinderen te bezoeken, u een bos van null pointers te tekenen.

Het this.parentis een verwijzing naar het huidige object parentpointer.

Het doet er niet echt zeggen dat thisis een ouder. In feite, this.parentwordt gebruikt om de lokale onderscheiden parentaanwijzer van de inkomende 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
    }
}
antwoordde op 14/11/2011 om 02:52
bron van user

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