SHARE
TWEET

Untitled

a guest Sep 17th, 2019 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //PRE=(albero(R) è un albero binario ben formato, Xe Tcontengonoun numero di posizioni pari al numero deinodi di albero(R))
  2.  
  3. void scanliv(nodo*R, int& nliv, int*X, int*T) {
  4.    
  5.     /*n nodoEx n=new nodo();
  6.     coda* C=new coda();
  7.    
  8.    
  9.     */
  10.    
  11.     nliv=0;
  12.     *X=1; //primo nodo radice
  13.     coda scan=new nodoEx(R,0,0); //inizializzo la coda sul primo nodo che e' la radice, liv=0;next=0;
  14.     *T=R->info;
  15.     *T++;
  16.    
  17. //manca il ciclo for per i successivi nodi    
  18.         if (R->right){
  19.             nliv+=1; //livello aumenta di 1
  20.             R=R->right;
  21.             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
  22.             *T=R->info;
  23.             *X=2; //X[i] contiene due nodi
  24.             *X++;
  25.         }
  26.        
  27.         else if(R->left){ //altrimenti vado a sinistra
  28.             nliv+=1; //livello aumenta di 1
  29.             R=R->left;
  30.             scan=push_end(scan,new nodoEx(R,1,0));
  31.             *T=R->info;
  32.             *X+=1;}
  33.        
  34.        
  35.  
  36.     }
  37.  
  38. //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)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top