PDA

View Full Version : [C] Inserire elementi in una lista


Capua
09-12-2006, 13:56
Dovrei inserire in una lista un insieme di elementi chiesti in input, fino a che non viene
inserito un valore sentinella -1...
questo è il codice, xò c'è qualche errore...se qualcuno ha tempo, potreste dirmi come
correggerlo?



#include <stdio.h>


int main()
{

struct lista
{
int dato;
struct lista *succ;
};

typedef struct lista lista;
int x;
lista *nuovo;

printf("inserire valori: ");
scanf("%d",&x);
if(x!=-1){
nuovo=(lista*)malloc(sizeof(lista));
x=nuovo->dato; // Inserisco il primo elemento della lista
int y;
scanf("%d",&y);
y=nuovo->succ;
while (y!=-1){
nuovo=(lista*)malloc(sizeof(lista));
y=y->succ;
scanf("%d",&y);
}
y->succ=NULL; // quando inserisco il valore sentinella, la lista è finita.
}
else nuovo->=NULL;
free(nuovo);

return 0;
}

Capua
09-12-2006, 19:28
Le liste purtroppo non mi sono mai state molto chiare...senti come ultima cosa, come faccio a passare una lista ad una funzione?

Joga3
11-12-2006, 11:11
Dovrei inserire in una lista un insieme di elementi chiesti in input, fino a che non viene
inserito un valore sentinella -1...
questo è il codice, xò c'è qualche errore...se qualcuno ha tempo, potreste dirmi come
correggerlo?



#include <stdio.h>


int main()
{

struct lista
{
int dato;
struct lista *succ;
};

typedef struct lista lista;
int x;
lista *nuovo;

printf("inserire valori: ");
scanf("%d",&x);
if(x!=-1){
nuovo=(lista*)malloc(sizeof(lista));
x=nuovo->dato; // Inserisco il primo elemento della lista
int y;
scanf("%d",&y);
y=nuovo->succ;
while (y!=-1){
nuovo=(lista*)malloc(sizeof(lista));
y=y->succ;
scanf("%d",&y);
}
y->succ=NULL; // quando inserisco il valore sentinella, la lista è finita.
}
else nuovo->=NULL;
free(nuovo);

return 0;
}

Ricordati che hai tempo fino a giovedì 14 Dicembre ore 10.30 :D

p.s. Che ha spiegato la calamoneri stamattina? :fagiano: