Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C++] collegare 2 nodi

    Ciao. Ho un problema, ho creato 2 nodi, ma non so collegarli, mi potete aiutare??.
    questo è il codice:
    codice:
    #include <iostream>   //provaaaaaaaaaaaaaaa
    using namespace std;
    int i;
    int main()
    { 
        struct Alunno 
        { 
            string nome; 
            string cognome; 
            int eta; 
            struct Alunno *next;
        };
        Alunno uno; 
        cout << "Inserisci il nome" << endl; 
        cin >> uno.nome; 
        cout << "Inserisci il cognome" << endl; 
        cin >> uno.cognome; 
        cout << "Inserisci l'eta'" << endl; 
        cin >> uno.eta;
        
        Alunno due;
        cout << "Inserisci il nome" << endl; 
        cin >> due.nome; 
        cout << "Inserisci il cognome" << endl; 
        cin >> due.cognome; 
        cout << "Inserisci l'eta'" << endl; 
        cin >> due.eta;
        uno.next =&due;
        system("pause"); 
    }

  2. #2
    Li hai già collegati:
    codice:
        uno.next = &due;
    ; l'unica cosa che manca è
    codice:
        due.next = NULL;
    per indicare che la lista concatenata termina con il secondo elemento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    e se vorrei creare una lista di N nodi??? Naturalmente N dato in IN-Put, come si fa?

  4. #4
    Alloca dinamicamente (tramite new) tanti nodi quanti te ne servono, collegando l'uno all'altro come hai già fatto. In ogni caso le liste concatenate sono uno degli argomenti più spiegati di questo mondo, una semplice ricerca su Google dovrebbe toglierti ogni dubbio.
    Tra l'altro in C++ di rado capita di dover implementare delle linked list, visto che esistono già container STL per praticamente ogni necessità; nello specifico i container std::list implementano una linked list.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    ma la sintassi per allocare dinamicamente tanti nodi (cn NEW) é:
    int *p;

    int main()
    {

    new(p);

    poi per collegarlo cn quello di dopo?
    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi usare i puntatori come hai gia' fatto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    sto facendo così
    codice:
    #include <iostream> 
    using namespace std;
    int i, *p,*q;
    int main()
    { 
        struct Alunno 
        { 
            string nome; 
            string cognome; 
            int eta; 
            struct Alunno *next;
        };
        
        p=new int;
        Alunno p;
        cout << "Inserisci il nome" << endl; 
        cin >> p.nome; 
        cout << "Inserisci il cognome" << endl; 
        cin >> p.cognome; 
        cout << "Inserisci l'eta'" << endl; 
        cin >> p.eta;
        
        q=new int;
        Alunno q;
        cout << "Inserisci il nome" << endl; 
        cin >> q.nome; 
        cout << "Inserisci il cognome" << endl; 
        cin >> q.cognome; 
        cout << "Inserisci l'eta'" << endl; 
        cin >> q.eta;
        p.next= &q;
        
        //da qui potrei iniziare a fare un ciclo? Per incrementare di nodo, com' è la sintassi?
        system("pause");
    }

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No.

    Cosa c'entra un puntatore a int ?

    Perche' dichiari

    p=new int;

    ???


    Nel primo listato non c'era ...

    Riflettici ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Quindi nn lo devo mettere? e nel secondo lo dovrei mettere?
    codice:
    #include <iostream> 
    using namespace std;
    int i, *p,*q;
    int main()
    { 
        struct Alunno 
        { 
            string nome; 
            string cognome; 
            int eta; 
            struct Alunno *next;
        };
        
        Alunno p;
        cout << "Inserisci il nome" << endl; 
        cin >> p.nome; 
        cout << "Inserisci il cognome" << endl; 
        cin >> p.cognome; 
        cout << "Inserisci l'eta'" << endl; 
        cin >> p.eta;
        
        q=new int;
        Alunno q;
        cout << "Inserisci il nome" << endl; 
        cin >> q.nome; 
        cout << "Inserisci il cognome" << endl; 
        cin >> q.cognome; 
        cout << "Inserisci l'eta'" << endl; 
        cin >> q.eta;
        p.next= &q;
        system("pause");
    }

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    new int

    significa che stai allocando un intero ... ma a cosa ti dovrebbe servire un valore intero?

    Nel tuo caso non c'entra assolutamente nulla ....

    Mi sembra che tu stia cercando di programmare senza una guida (cartacea o online) ... hai un libro che parli di liste?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.