Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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


matteog
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
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 ...


Ingegnere Informatico
https://ldlagency.it
PM Quote