Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con le liste
Forum - C/C++ - Problema con le liste

Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 15:28
Lunedė, 02/11/2009
Codice sorgente - presumibilmente C#

  1. #include "stdafx.h"
  2. #include <string>
  3. #include <iostream>
  4. using namespace std;
  5. struct studente
  6. {
  7.         string nome;
  8.         string cognome;
  9.         string  data;
  10.         string luogo;
  11.         string matricola;
  12.     studente *next;
  13. };
  14. struct pila
  15. {
  16.         studente *testa;
  17. };
  18. void menu();
  19. void push(pila &P);
  20. int main()
  21. {
  22.     pila P;
  23.         P.testa=NULL;
  24.         int scelta;
  25.         cout<<"menu!"<<endl;
  26.         menu();
  27.     cin>>scelta;
  28.         switch(scelta)
  29.         {
  30.         case 1:
  31.                 studente *temp;
  32.                 temp=new studente;
  33.                 cout<<"inserisci il cognome"<<endl;
  34.                 cin>>(temp->cognome);
  35.                 cout<<"inserisci il nome"<<endl;
  36.                 cin>>(temp->nome);
  37.                 cout<<"inserisci la data"<<endl;
  38.                 cin>>(temp->data);
  39.                 cout<<"inserisci il luogo di nascita"<<endl;
  40.                 cin>>temp->luogo;
  41.                 cout<<"inserisci la matricola"<<endl;
  42.                 cin>>temp->matricola;
  43.                 temp->next=NULL;
  44.                 push(P);
  45.         }
  46.  
  47. system("pause");
  48. return 0;
  49.  
  50.  
  51. }
  52. void menu()
  53. {
  54.         cout<<"1_per inserire un nuovo studente"<<endl;
  55.         cout<<"2_per cancellare un utente"<<endl;
  56.         cout<<"3_per cercare un utente"<<endl;
  57.         cout<<"4_per stampare la lista degli utenti"<<endl;
  58.         cout<<endl;
  59. }
  60. void push(pila &P)
  61. {   studente *N;
  62.     N->next=P.testa;
  63.         P.testa=N;
  64. }



ho fatto questo proghramma per capire il funzionamento delle liste ma continuo ad avere problemi nell'implementazione del nuovo nodo mi sapete dire dove sbaglio o se manca qualcosa grazie a tt!

EDIT by HeDo: Titolo modificato, "ciao a tutti" non esiste in un titolo, mica siamo al bar...

Ultima modifica effettuata da HeDo il 05/11/2009 alle 13:58
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 17:23
Lunedė, 02/11/2009

Codice sorgente - presumibilmente C/C++

  1. void push(pila &P)
  2. {   studente *N;
  3.     N->next=P.testa;
  4.     P.testa=N;
  5. }



non č corretta, N non punta da nessuna parte quando gli setti il valore.

oltretutto per aggiungere un valore al termine della lista devi avere l'ultimo elemento, creare un altro elemento di tipo studente, settarlo come successivo dell'ultimo e impostare il successivo del nuovo elemento a NULL.

qui trovi ulteriori dettagli: http://programmazione.html.it/guide/lezione/1111/introduzi ...

PM Quote