Quando cerco di stampare a video gli elementi della mia testa, mi accorgo che esce sempre 0 e non riesco a capire il motivo.
main.cpp
prova.hcodice:#include <cstdlib> #include <iostream> #include "prova.h" using namespace std; int main(int argc, char *argv[]) { //VARIABILI Pnodo testa;//creo la testa (puntatore record) testa=0;//inizializzi la testa a 0 int n;//numero massimo di valore da inserire nella lista int x;//valore che si inserirà nel for cout<<"Quanti valori vuoi inserire nella lista? Inserisci: "; cin>>n; for (int i=0; i<n; i++) { cout<<"Inserisci il " <<i <<"^ valore: "; cin>>x; push(testa,x);//inserimento in testa alla lista; } cout<<"La lista inserita e':\n"; for (int i=0; i<n; i++) { cout<<"Il " <<i <<"^ valore e': " <<endl; stampa(testa,x);//stampa dalla testa } system("PAUSE"); return EXIT_SUCCESS; }
codice:#ifndef prova_h #define prova_h typedef struct nodo *Pnodo; typedef struct nodo{ int elemento; Pnodo successivo; }; void push(Pnodo &,int &);//inserimento in testa alla lista; void stampa(Pnodo &,int &);//stampa dalla testa #endif
prova.cpp
codice:#include <cstdlib> #include <iostream> #include "prova.h" using namespace std; void push(Pnodo &nuovaTesta,int &x)//inserimento in testa alla lista; { Pnodo nuovo = new nodo; //alloco spazio in memorie heap nuovo->elemento = x; //associo il valore x; nuovo->successivo = nuovaTesta; //lo lego alla lista nuovo = nuovaTesta; //diventa la nuova testa cout<<nuovaTesta; } void stampa(Pnodo &nuovaTesta,int &x)//stampa dalla testa { Pnodo temp; temp = nuovaTesta; while(temp!=0) { cout << temp->elemento; temp = temp->successivo; } }

Rispondi quotando