Création d'une liste chainée
Bonjour les ami(e)s :
j'ai un problème dans une fonction qui cree une liste chainnee , voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#include<stdio.h>
#include<stdlib.h>
typedef struct noeud {
char c ;
struct noeud* next ;
}Noeud ;
typedef Noeud* car ;
car getNode(){
car cellule=malloc(sizeof(Noeud)) ;
puts("give me the data : ");
scanf("%c",&cellule->c);
cellule->next=NULL;
return cellule;
}
car creatList(int n){
int i;
car listhead,temp;
listhead=malloc(sizeof(Noeud));
listhead=getNode();
temp=listhead;
for(i=1;i<n;i++){
temp->next=getNode();
temp=temp->next;
}
return listhead;
}
car ajouterEnFin(car T,char x){
car temp=malloc(sizeof(Noeud));
temp=T;
while(temp) temp=temp->next;
Noeud data ;
data.c=x;
data.next=NULL;
temp=&data;
return T ;
}
car ajouterEnTete(car T, char x){
Noeud data ;
data.c=x;
data.next=T;
T=&data;
return T;
}
int longueur(car T){
car temp=T;
int s=1;
temp=malloc(sizeof(Noeud));
while(temp){
temp=temp->next;
s++;
}
return s;
}
void affichage(car temp){
while(temp){
printf("%c\t",temp->c);
temp=temp->next;
}
printf("\n");
}
int main(int argc, char const *argv[]) {
int n;
printf("give the length of the list : \t");
scanf("%d",&n);
car listhead,temp;
listhead=creatList(n);
return 0;
} |
les fonctions qui constuisent une liste sont getNode() et creatList ..
j'ai pas pu remarque mon erreur .. et Merci