Minne og pekere i en BST

stemmer
0

I et binært søketre som tar et enkelt objekt ..... når du oppretter getter og setter-metoder for venstre, høyre og forelder. Det er bekymringer om hva som skjer når en forelder node er satt. Kode nedenfor ...

Koden:

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

Eksempelet kode som inspirerte koden:

 public void setParent(Node parent) {
  this.parent = parent;
 }
Publisert på 14/11/2011 klokken 01:47
kilden bruker
På andre språk...                            


1 svar

stemmer
2

Dere skaper hva er egentlig en klone av det overordnede objektet. Dette er forskjellig fra bare å spare pekeren til det overordnede objektet.

Selvfølgelig, vil du være å ta mer plass i minnet ved å duplisere det overordnede objektet. Enda viktigere, er du ikke duplisere foreldrenes referanser. Så hvis du prøver å traversere treet, gå til en node foreldre, og deretter prøve å besøke sine andre barn, trekker du en haug med null pekere.

Det this.parenter en referanse til den aktuelle objektets parentpeker.

Det betyr faktisk ikke at thiser en forelder. Faktisk, this.parentfor å skille den lokale parentpekeren fra den inngående 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
    }
}
Svarte 14/11/2011 kl. 01:52
kilden bruker

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