PDA

View Full Version : [Java]Implementare un albero non binario


DesmoColo
22-01-2008, 18:05
AIUTO!
Devo impelemntare un albero, in cui ogni nodo può avere n figli.
Avevo pensato di fare la classe Nodo così:


class MyNode(){
public MyNode parent = null;
public LinkedList listChild;
public MyNode(){

listChild = new LInkedList();
}
public void setParent(NyNode n)
{parent = MyNode}
public void addChild(MyNode c){
listHild.add(c);
}
}


L'albero è così:

Class Tree{
MyNode root = null;
public Tree(){
root = null;
}
public MyNode insert(MyNode n, MyNode parent)
{
if(root == null){
root = n;
return root;
}
root = n;
root.setParent(parent);
parent.addChild(n);
return root;

/*VA BENE?ADESSO CHE FACCIO?:-))))*/

}
}

Mi serve poi di visistare e stampare i vari nod dell'albero... però se la insert non va bene è un guaio!
La stampa l'avevo pensata cosi:

while(root != null)
{
stampa root;
root = root.getParent();
}

Tutto mi si blocca alla prima iterazione.

Vi prego. HELP ME!

joujoudotorg
25-01-2008, 09:07
Esiste una maniera abbastanza interessante e facile da implementare, per realizzare alberi N-ari, che io preferisco rispetto all'idea che hai proposto tu.

In pratica ogni nodo ha un puntatore al nodo padre, un puntatore al primo figlio ed un puntatore al fratello successivo :)
Se ci rifletti bene, è po' come se realizzassi un albero N-ario per mezzo di un albero binario (se consideri primo-figlio e fratello-successivo come figlio-sinistro e figlio-destro)

Ora non ti sto a scrivere il codice perchè è un po' che non programmo in c o c++, cmq l'importante è capire il concetto.