Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152

    [C] Deallocazione di un albero

    Ragazzi ho un dubbio sulla deallocazione di un albero ( e cioè di tutti i suoi elementi I.
    Ho usato questa procedura :

    codice:
    void dealloca_albero(nodo *root){
         if(root==NULL)
                       return;
         nodo *l=root->sx;
         nodo *r=root->dx;
         free(root);
         if(l!=NULL)
                    dealloca_albero(l);
         if(r!=NULL)
                    dealloca_albero(r);
    }
    Volevo domandarvi una cosa non sapendo se è un errore o meno. Quando inserisco una serie di elementi nell'albero e poi passo a fare la sua deallocazione, provo anche a visualizzarlo ( sperando di vedere un output che ho messo io nella visualizzazione che mi avvisa quando la lista è vuota ), invece durante l'esecuzione della visualizzazione di un albero appena deallocato mi da segmentation fault, è normale ? O bisogna modificare il codice ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non è normale. Sarà il codice di visualizzazione sbagliato.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    è questo il codice di visualizzazione, però premetto che un albero pieno me lo visualizza correttamente

    codice:
    void visualizza_abr(nodo *root){
         if(root!=NULL){
               if(root->sx!=NULL)
                        visualizza_abr(root->sx);
               printf("%s - ",root->stringa);
               if(root->dx!=NULL)
                        visualizza_abr(root->dx);
         }
         else
             printf("Non ci sono elementi nell'albero ");
    
    }

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Dopo aver deallocato l'albero setti la variabile a NULL?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    152
    No, devo settare la radice a NULL ?

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.