PDA

View Full Version : [C++] Aiuto con le Liste


pixel3000
13-12-2005, 17:45
Non mi è molto chiaro il funzionamento delle liste in c++, vi incollo il programma che ho fatto per prova specificando i punti che mi restano poco chiari:

#include <iostream>
using namespace std;
struct nodo{
int chiave;
nodo *next;
};

typedef nodo *lista;

void crea_lista_vuota(lista &testa){ //lista &testa cosa fa fare in soldoni al programma?
testa=0;
}

void ins_testa(lista &testa, int x){
nodo *nuovo;
nuovo = new nodo;
nuovo -> chiave = x;
nuovo -> next = testa;
testa = nuovo;
}

void stampa_lista(lista testa){ //come sopra ma non c'è l'ind per riferimento
nodo *p;
for (p=testa;p!=0;p=p->next)
cout<<p->chiave<<endl;
}

int main(){
int c, key;
crea_lista_vuota(cosa gli devo passare qua e nelle chiamate delle altre procedure? );
do {
cout<<"1) Inserisci in testa"<<endl<<"2) Stampa lista"<<endl<<"0) Esci"<<endl;
cin>>c;
switch(c){
case 1: {cout<<"Inserisci il valore: ";
cin>>key;
ins_testa(, key);
}

case 2: stampa_lista();
}while (a!=0)
cin>>a; //mi serve per fare fermare il programma in dos
}

Grazie a chi si adopererà per risolvere i miei dubbi :)

EnderIII
13-12-2005, 18:46
Il parametro che devi mettere nelle funzioni è lista. Dichiarato come globale, subito dopo quello della struttura. Potevi anche dichiararlo nel main.

EnderIII
13-12-2005, 18:48
Devo rettificare.

Devi dichiarare nodo* lista. Quel typedef non c'entra.

sottovento
14-12-2005, 10:25
No, il typedef deve essere lasciato. Poi, come hai suggerito, si puo' dichiarare nel main

lista testa;

e passare testa alle funzioni

High Flying
Sottovento

pixel3000
14-12-2005, 14:19
Grazie infatti ora sono riuscito a risolvere :) Grazie molte!