Memorie și indicii într-un BST

voturi
0

Într-un arbore binar de căutare care are un obiect simplu ..... la crearea getter si setter metode pentru stânga, dreapta, și mamă. Există îngrijorări cu privire la ceea ce se întâmplă atunci când un nod părinte este setat. Codul de mai jos ...

Codul:

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

Exemplul de cod care a inspirat codul:

 public void setParent(Node parent) {
  this.parent = parent;
 }
Întrebat 14/11/2011 la 02:47
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
2

Creezi ceea ce este, în esență, o clonă a obiectului părinte. Acest lucru este diferit de economisire doar pointer la obiectul părinte.

Evident, vei lua mai mult spațiu de memorie prin duplicarea obiectului părinte. Mai important, nu o duplicați referințele părintelui. Deci, dacă încercați să traverseze copac, du-te la mama unui nod, apoi încercați să viziteze alți copii săi, desenați o grămadă de indicii nule.

this.parentEste o referință la obiectul curent parentindicator.

Aceasta nu înseamnă de fapt , că thiseste un părinte. De fapt, this.parenteste folosit pentru a distinge local parentindicatorul de parametrul de intrare 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
    }
}
Publicat 14/11/2011 la 02:52
sursa de către utilizator

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