liste liée avec la fonction
Je suis en train de créer un programme qui crée et affichage de la liste liée.
Maintenant, je vais avoir des ennuis avec ma create_list() de la fonction, il n'est pas de créer une liste.
Ce que je fais mal ?
Désolé pour les mauvais en anglais :/
CODE :
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data;
struct node *next;
} node;
int main(){
node *start;
start = NULL;
int a,n,on = 1;
while(on == 1){
printf(" \n choose: \n 1 --- create list \n 2 --- display list \n");
scanf("%d",&n);
switch(n){
case 1:
printf("-------------------------------------------- \n");
printf(" Enter the elements. The last element is 0 \n");
printf("-------------------------------------------- \n");
Create_list();
Display_list(start);
break;
case 2:
Display_list(start);
break;
}
}
system("pause");
return 0;
}
void Display_list(node *curr){
if(curr){
while (curr->next != NULL){
printf("%d \n",curr->data);
curr=curr->next;
}
} else {
printf(" \n The list is not created ! \n");
}
}
void Create_list(node *curr){
int i;
node *start = NULL;
if (start == NULL){
curr = (node *)malloc(sizeof(node));
start=curr;
while ( i != 0){
scanf("%d",&i);
if(i == 0){
curr->next=NULL;
curr=start;
} else {
curr->data=i;
curr->next=(node *)malloc(sizeof(node));
curr=curr->next;
}
}
} else {
printf(" \n list already exists ! \n");
}
}
- ton indentation est mal à mes yeux!
Vous devez vous connecter pour publier un commentaire.
La fonction Create_List(noeud *curr) les besoins de certains arguments. Vous n'êtes pas en passant les arguments de main(). Votre code compiler?
La fonction Create_List(noeud *curr) les besoins de certains arguments. Vous n'êtes pas en passant les arguments de main(). Votre code compiler?
Ce que vous devez faire est de prendre un nœud principal qui permet de stocker emplacement de premier nœud de la liste chaînée.
La
start
dansCreate_list
n'est pas liée à lastart
dansmain
. Puisque les deux sont locales à leurs fonctions respectives, on peut même pas voir l'autre. Le choix destart
ne passtart
, si vous voulez. 😛Vous aurez besoin soit de mettre
start
en dehors des fonctions et global, ou de passer&start
(comme unnode**
) à partir demain
enCreate_list
et modifier*start
de définir la liste tête de. (Ce dernier est généralement préférable, comme globales sont souvent du mal à attendre d'arriver.)