Ho provato con queste funzioni ma nn ho risolto nulla aiutatemi!!!!!!

codice:
 
//Funzione ausiliaria: dealloca l'albero 
void dealloca_nodo(ABR T,tree& x){ 
                            tree q; 
                              q=x; 
                            while(x!=NULL){ 
                                        x=Tree_delete(T,x); 
                                        delete q; 

                                        q=x; 
                                           } 

                           } 

void dealloca_albero(ABR& T,tree x){ 
                            tree q; 
                              q=T->root; 
                            while(T!=NULL){ 
                                            dealloca_nodo( T, x); 

                                            /* 
                                        T->root=Tree_delete(T,x); 
                                        delete q; 
                                        q=T->root; 
                                        */ 
                                           } 
                                           T->root=Tree_delete(T,x); 
                                        delete q; 
                                        q=T->root; 

                           }
con un input di dimensine di 1.000.000 il mio programma occupa 232 MegaByte
ho provato ha creare con l'operatore new la struttura nodo fuori dal ciclo for
o vabene con il new all'interno del ciclo for o il new all'esterno
mi serve una funzione ke dealloki la memoria . voi avete usato malloc ??? come funziona????


codice:

codice:
                            x=new nodo[dim];
                           T=new albero;
                           inizializza_root(T);
                          
                           
                           media=0;
                           cout<<"\n";
                           for(int h=0;h<10;h++){
                              //Crea l'albero di dim elementi
                              for (int i=0;i<dim;i++){
                                 
                                  
                                  inizializza_nodo(x);
                                  
                                  x->key=rand();
                                 
                                  if(i==0)
                                    t1=time(NULL);
                                   Inserimento(T,x);
                                  
                                  //Inorder(x);
                                     }
                              t2=time(NULL);
                              cout<<"tempo della "<<h+1<<" prova: ";
                              cout<<difftime(t2,t1);
                              cout<<"\n";
                              // devo inserire una funzione per liberare la memoria
                              cout<<"tempo per deallocare la memoria...\n\n";
GRazie