Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    Si questo sì, però quel "%d\n" non so cosa significa. Dato che la ricorsione sui libri da cui studio viene giusto accennata, potete indicarmi qualche risorsa per studiarmela?

    Per quanto riguarda la funzione per stampare la lista al contrario, mi basta solo quella che mi avete suggerito voi? Cioè questa:

    codice:
    void stampa(pNodo curr)
    {
        if(curr) // ovvero, if(curr!=NULL)
        {
            stampa(curr->next);
            printf("%d\n", curr->elem);
        }
    }

  2. #12
    Originariamente inviato da djanthony93
    Si questo sì, però quel "%d\n" non so cosa significa.
    Indica che deve stampare un intero seguito da un ritorno a capo; l'equivalente C++ sarebbe semplicemente:
    codice:
    cout<<curr->elem<<'\n';
    per cui la funzione diventa:
    codice:
    void stampa(pNodo curr)
    {
        if(curr!=NULL)
        {
            stampa(curr->next);
            cout<<curr->elem<<"\n";
        }
    }
    Dato che la ricorsione sui libri da cui studio viene giusto accennata, potete indicarmi qualche risorsa per studiarmela?
    Qui mi pare ci sia un'introduzione carina alla ricorsione; probabilmente a te interessano giusto le prime due/tre pagine, ma non mi pare fatta male.
    Per quanto riguarda la funzione per stampare la lista al contrario, mi basta solo quella che mi avete suggerito voi?
    Sì, c'è dentro tutto quello che serve; è estremamente compatta proprio perché usa la ricorsione.
    Comunque, di nuovo, per capire come funziona prova a seguire la sua esecuzione su una lista relativamente breve; puoi farlo sia "a mano" (seguendo gli step che farebbe il computer) sia seguendo l'esecuzione con un debugger (fondamentale in tal caso tenere d'occhio il call stack).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #13
    Io per compilare uso DEV-C++, so che è integrata una funzione di debugging, ma so solo che questa serva per correggere gli errori di algoritmo, come va usata? Scusate se vi riempio di domande, se la questione è lunga me la studio da solo XD

  4. #14
    Non ho praticamente mai usato Dev-C++, ma, come in praticamente ogni IDE, ci dev'essere un pulsante (e relativo tasto di scelta rapida) per aggiungere breakpoint (punti in cui l'esecuzione del programma viene messa in pausa) e fare stepping (eseguire il programma un'istruzione alla volta); lo stepping ti può essere utile per "seguire" in diretta come lavora il codice in questione, anche se forse capisci meglio se ci ragioni un attimo "su carta".
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Lascia stare il DevC++ e usa un IDE decente dotato di debugger funzionante.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #16
    Quale mi consigliate?

    Ritornando alla questione della lista, il codice che ho postato io per invertire la lista non funziona, mi sapete dire il motivo?

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ad esempio Visual C++ Express

    Cosa vuol dire "non funziona"? Cosa hai scritto (compreso il main)?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    nel main richiamo solo la funzione "listaRovesciata":

    codice:
    void listaRovesciata(pNodo lista)
    {
         pNodo p = createList();
         while(lista != 0){
                     push(p, lista->elem);
                     lista = lista->next;
                     }
         cout << "\n1.\t Lista al contrario: \n";
         stampList(p);
    }
    
    void stampList(pNodo lista)
    {
         while(lista != 0){
                     cout << "\t Elemento: " << lista->elem << " - Posizione: " << lista->i << "\n";
                     lista = lista -> next;
                     }
    }

  9. #19
    Rileggi più attentamente il tuo codice... listaRovesciata crea semplicemente una copia della lista, non una copia rovesciata.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #20
    Ho sbagliato funzione, quella è un'altra:

    codice:
    pNodo p = lista;
         pNodo testa = lista;
         while(p->next != 0){
                     p->next = lista;
                     lista = lista->next;
                     p = lista;
                     }
         while(p != testa){
                 cout << "\t Elemento: " << p->elem << "\n";
                 p = p->next;
                 }

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