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++ - classe lista concatenata C++
Forum - C/C++ - classe lista concatenata C++

Avatar
lippolis2000 (Normal User)
Newbie


Messaggi: 1
Iscritto: 17/10/2019

Segnala al moderatore
Postato alle 10:51
Giovedì, 17/10/2019
salve, devo creare la classe Lista in C++ per realizzare una lista concatenata semplice (quindi con riferimento al nodo successivo ma non al precedente, ho scritto il seguente codice:


Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef int tipoelem;
  6.  
  7. class Lista{
  8.  
  9. public:
  10.     void creaLista();
  11.     bool listaVuota() const;
  12.     void insLista();
  13.  
  14. private:
  15.  
  16.     typedef struct{
  17.         tipoelem valore;
  18.         struct Nodo *next;
  19.     }Nodo;
  20.  
  21.     Nodo *head;
  22.  
  23. };
  24.  
  25. int main()
  26. {
  27.     Lista L;
  28.     L.creaLista();
  29.     if(L.listaVuota()){
  30.         cout << "La lista e' vuota" << endl;
  31.     }else{
  32.         cout << "La lista non e' vuota" << endl;
  33.     }
  34.     L.insLista();
  35.     return 0;
  36. }
  37.  
  38. void Lista::creaLista(){
  39.     head = NULL;
  40. }
  41.  
  42. bool Lista::listaVuota() const{
  43.     return (head == NULL);
  44. }
  45.  
  46. void Lista::insLista(){
  47.     Nodo *primo_nodo = new Nodo;
  48.     primo_nodo->valore = 1;
  49.     primo_nodo->next = NULL;
  50.     head->next = primo_nodo;
  51. }


non capisco l'errore che mi dà all'istruzione " head->next = primo_nodo; ", cioè io sto dicendo che dopo aver inserito il primo elemento, la variabile head punta a quel primo elemento

N.B.: la funzione dovrebbe avere come parametri " tipoelem " (nel mio caso intero) e una " posizione " che devo ancora definire, ma per il momento sto cercando di capire questa cosa, grazie in anticipo

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1610
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 7:45
Venerdì, 18/10/2019
È un segfault perché head è null e tu ne modifichi il campo next.

PM Quote