PDA

Visualizza la versione completa : [C]liste concatenate


TheJoeseph
29-07-2014, 19:30
Ciao ragazzi,
ho un problema con questo codice:

#include <stdio.h>
#include <stdlib.h>


struct elemento {
int value;
struct elemento *next;
};

void menu();
struct elemento *inserimento (struct elemento *list_head);
//struct elemento *cerca (int n, struct elemento *list_head);
// struct elemento *ordina (struct elemento *list_head);
//struct elemento *elimina (int n, struct elemento *list_head);
void stampa(struct elemento *list_head);

int main () {
struct elemento *list_start=NULL;
int comando;
int search;
int del;

do {

menu();
printf("\n\ncomando:\t");
scanf("%d",&comando);

switch (comando) {
case 1: {
inserimento(list_start);
break;
}

/* case 2:{
printf("Digita il valore da cercare");
scanf("%d",&search);
cerca(search,list_start);
break;
}

case 3: {
ordina(list_start);
break;
}

case 4: {
printf("Digitare il valore da eliminare");
scanf("%d",&del);
break;
}*/

case 5: {
stampa(list_start);
break;
}

}
} while (true);

return 0;
}

//creazione del menu
void menu() {

printf("||||||||||||||||||||||||||||||||||||");
printf("\n1)Inserimento valore");
printf("\n2)Ricerca valore");
printf("\n3)Ordinamento lista");
printf("\n4)Eliminazione");
printf("\n5)Stampa lista\n");
printf("||||||||||||||||||||||||||||||||||||");

}

struct elemento *inserimento (struct elemento *list_head){
struct elemento *list_pointer, *list_record;
int exit=0;
int val,newval,i=2;
list_record=(struct elemento*)malloc(sizeof(struct elemento));

printf("Inserisci il 1 valore");
scanf("%d",list_record->value);
list_head=list_record;
list_pointer=list_head;
do {
list_record->next=(struct elemento*)malloc(sizeof(struct elemento));
list_record=list_record->next;
printf("inserisci il %d valore",i++);
scanf("%d",list_record->value);
printf("Vuoi fermarti?(premere 1 per continuare altrimenti 0)\n");
scanf("%d",&exit);
}while(exit==1);

list_record->next=NULL;
list_pointer=list_head;

return(list_head);
}


void stampa (struct elemento *list_start) {
struct elemento *list_pointer =list_start;
printf("\nlista -> ");

while(list_pointer != NULL){
printf("%d", list_pointer->value);
printf(" -> ");
list_pointer = list_pointer->next;
}
printf(" NULL \n");
}



In pratica mi fa inserire i valori ma quando stampo a video mi spunta solo "lista->NULL" senza stamparmi i numeri.... come posso risolvere? (non guardate gli altri comandi che ancora sono in fase di lavorazione).
grazie in anticipo

Loading