Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65

    [C]funzione verificare se un albero binario è un abr

    Ciao a tutti ho il seguente problema : dato un albero binario devo scrivere una funzione ricorsiva che restituisce 0 se l albero è un ABR , 1 se non lo è.
    La soluzione che avevo pensato ma non riesco ad applicare è quella di utilizzare la visita in ordine e verificare se la successione è crescente. Quindi utilizzando una funzione dove gli passerò due parametri var1 e var2 e verifico di chiamata in chiamata se var1 è minore o uguale di var2 appena var1 è maggiore di var2 dovrei uscire e ritornare 1 se no vado avanti.

    Spero di essere stato chiaro nell esposizione del problema e che qualcuno mi aiuti GRAZIE!!!!!!!!
    codice:
    int ABR(nod *radice, int *b)/*0 se è un abr, 1 se non lo è*/
    {
     int confronto;
     if (radice!=NULL)
       {
         confronto=ABR(radice->sinistro,&(radice->info));
         printf("valore di radice e' %d \n",radice->info);
         printf("valore di b e' %d \n",*b);
         if (radice->info>(*b))
           return 1;/*dobbiamo uscire visto che il precedente è minore del successivo*/
         else
           confronto=0;  /*vado avanti*/
         confronto=ABR(radice->destro,&(radice->info));
       }
     return confronto; 
     
    }
    b lo inizializzo nel maincon un valore piu grande che non posso inserire nell albero.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65
    ragazzi non so cosa fare vi prego aiutatemi HELP!!!!!!!!!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da mame83
    ragazzi non so cosa fare vi prego aiutatemi HELP!!!!!!!!!!!
    Hai riportato il codice, ma non hai detto qual è il problema specifico.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65
    mi restituisce sempre 1 cioè che non è un abr.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65
    ragazzi ma forse non ho spiegato bene il problema??? è mai possibile che non c e nessuno che lo sappia risolvere??? cercate di aiutarmi non so piu che fare!!!!!!!!!!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65
    è un problema difficile anke per voi????????

  7. #7
    Perchè passi un parametro alla funzione? Dovresti riuscire a farlo passando solamente il nodo radice e controllando i valori dei figli da lì...
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65
    mi potresti aiutare non so come fare!!!!!ripeto io voglio controllare di volta in volta se i due parametri sono crescenti per verificare che sia una successione crescente.

  9. #9
    Ma perchè? Un albero binario di ricerca è caratterizzato dal fatto che per ogni nodo interno il figlio sinistro ha valore minore, e quello destro ha valore maggiore del nodo considerato. Non ti basta controllare che questa condizione venga rispettata per ogni nodo, ricorsivamente, dalla radice dell'albero ai figli?
    Se state chiamando per i piedini mancanti,lasciate il vostro indirizzo,e i piedi di ricambio vi saranno consegnati da mio nipote Jody. E ora, io devo ritornare nel dolce abbraccio della cripta... Ma tornerò!!!

    The Simpson ; AABF08 (Domenica orrenda domenica)

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    65
    Originariamente inviato da MisterBean
    Ma perchè? Un albero binario di ricerca è caratterizzato dal fatto che per ogni nodo interno il figlio sinistro ha valore minore, e quello destro ha valore maggiore del nodo considerato. Non ti basta controllare che questa condizione venga rispettata per ogni nodo, ricorsivamente, dalla radice dell'albero ai figli?
    è la stessa cosa verificare se è una successione crescente. HELP HELP!!!!!!!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.