Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //PRE=(albero(R) è un albero binario ben formato, Xe Tcontengonoun numero di posizioni pari al numero deinodi di albero(R))
- void scanliv(nodo*R, int& nliv, int*X, int*T) {
- /*n nodoEx n=new nodo();
- coda* C=new coda();
- */
- nliv=0;
- *X=1; //primo nodo radice
- coda scan=new nodoEx(R,0,0); //inizializzo la coda sul primo nodo che e' la radice, liv=0;next=0;
- *T=R->info;
- *T++;
- //manca il ciclo for per i successivi nodi
- if (R->right){
- nliv+=1; //livello aumenta di 1
- R=R->right;
- scan=push_end(scan,new nodoEx(R,1,0)); //mi sposto a destra e aggiungo un puntatore della coda al nodo; manca il push_end per aggiungere in fondo alla lista i puntatori ai figli
- *T=R->info;
- *X=2; //X[i] contiene due nodi
- *X++;
- }
- else if(R->left){ //altrimenti vado a sinistra
- nliv+=1; //livello aumenta di 1
- R=R->left;
- scan=push_end(scan,new nodoEx(R,1,0));
- *T=R->info;
- *X+=1;}
- }
- //POST=(nlivè è il numero di livelli di albero(R) e X e T contengono i valori descritti nell’Esempio 1, ovviamente per l’albero(R) in input)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement