Salve a tutti,
sto combattendo da ore sulla correzione di questo programma riguardante l'inserimento e stampa di valori di una lista.
Qualcuno può cortesemente dirmi cosa sbaglio?
ecco il codice
grazie in anticipo.
typedef struct nodo{
int dato;
struct nodo *next;
}node;
typedef node *ptrNode;
void stampaLista(ptrNode testa);
ptrNode inserimentoTesta(ptrNode testa);
int main() {
ptrNode testaMain=NULL;
int scelta;
do{
printf("Scegli una voce del menu:\n");
printf("1)inserimento in testa\n");
printf("2)stampa lista\n");
printf("3)EXIT\n");
scanf("%d", &scelta);
switch(scelta){
case 1:
testaMain=inserimentoTesta(testaMain);
break;
case 2:
stampaLista(testaMain);
break;
}
}while(scelta!=3);
return 0;
}
void stampaLista(ptrNode testa){
if(testa==NULL){
printf("NULL\n");
}
else{
printf("%d", testa->dato);
stampaLista(testa->next);
}
}
ptrNode inserimentoTesta(ptrNode testa){
int n;
int i;
ptrNode nuovo;
printf("Digita il numero degli elementi che vuoi inserire in lista:");
scanf("%d",&n);
if(n==0){
testa=NULL;
printf("La lista e'vuota");
}
else{
//creazione del primo elemento
int num;
nuovo=(ptrNode)malloc(sizeof(node));
printf("Inserire il primo valore:\n");
scanf("%d",&num);
nuovo->dato=num;
nuovo->next=testa;
nuovo=testa;
for(i=2;i<=n;i++){
nuovo->next=(ptrNode)malloc(sizeof(node));
nuovo=nuovo->next;
printf("\nInserisci il %d elemento: ", i);
scanf("%d", &nuovo->dato);
}
nuovo->next=NULL;
}
return nuovo;
}
sto combattendo da ore sulla correzione di questo programma riguardante l'inserimento e stampa di valori di una lista.
Qualcuno può cortesemente dirmi cosa sbaglio?
ecco il codice
grazie in anticipo.
typedef struct nodo{
int dato;
struct nodo *next;
}node;
typedef node *ptrNode;
void stampaLista(ptrNode testa);
ptrNode inserimentoTesta(ptrNode testa);
int main() {
ptrNode testaMain=NULL;
int scelta;
do{
printf("Scegli una voce del menu:\n");
printf("1)inserimento in testa\n");
printf("2)stampa lista\n");
printf("3)EXIT\n");
scanf("%d", &scelta);
switch(scelta){
case 1:
testaMain=inserimentoTesta(testaMain);
break;
case 2:
stampaLista(testaMain);
break;
}
}while(scelta!=3);
return 0;
}
void stampaLista(ptrNode testa){
if(testa==NULL){
printf("NULL\n");
}
else{
printf("%d", testa->dato);
stampaLista(testa->next);
}
}
ptrNode inserimentoTesta(ptrNode testa){
int n;
int i;
ptrNode nuovo;
printf("Digita il numero degli elementi che vuoi inserire in lista:");
scanf("%d",&n);
if(n==0){
testa=NULL;
printf("La lista e'vuota");
}
else{
//creazione del primo elemento
int num;
nuovo=(ptrNode)malloc(sizeof(node));
printf("Inserire il primo valore:\n");
scanf("%d",&num);
nuovo->dato=num;
nuovo->next=testa;
nuovo=testa;
for(i=2;i<=n;i++){
nuovo->next=(ptrNode)malloc(sizeof(node));
nuovo=nuovo->next;
printf("\nInserisci il %d elemento: ", i);
scanf("%d", &nuovo->dato);
}
nuovo->next=NULL;
}
return nuovo;
}