[C] liste chainée, passage des pointeurs
Résolu
kaham
Messages postés
174
Date d'inscription
Statut
Membre
Dernière intervention
-
kaham Messages postés 174 Date d'inscription Statut Membre Dernière intervention -
kaham Messages postés 174 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un probleme avec ma liste chainée formatée. Dans mon programme il y a 2 fonctions : une qui cherche l'emplacement croissant pour placer ma valeur et l'autre qui créé l'allocation et affecte les valeurs au pointeur.
les voici :
Les pointeurs "q" et "r" sont initialiser a NULL et apres le passage de la fonction "search()" il devraient prendre les valeurs de l'élément suivant et précédant le nouvelle élément. Mais dans mon cas il reste a NULL.
Je ne trouve pas la solution.
Merci de votre aide.
J'ai un probleme avec ma liste chainée formatée. Dans mon programme il y a 2 fonctions : une qui cherche l'emplacement croissant pour placer ma valeur et l'autre qui créé l'allocation et affecte les valeurs au pointeur.
les voici :
void search(struct elem *tete, int val, struct elem *r, struct elem *q){
int trouve = 0;
q=tete;
r=tete;
while(q!=NULL && !trouve){
printf("tete = %ld\tq = %ld\tr = %ld\n", tete, q, r);
if(q->info > val)
trouve=1;
else{
r=q;
q=q->next;
}
printf("q = %ld\tr = %ld\n", q, r);
system("pause");
}
}
void insert(struct elem *tete, int val){
struct elem *p=NULL,*q=NULL,*r=NULL;
search(tete, val, r, q);
p = (struct elem *)malloc(sizeof(struct elem));
if(p==NULL) printf("Memory allocation failed\n");
printf("q = %ld\tr = %ld\n", q, r);
p->info = val;
p->next = q;
printf("p->info = %ld\tp->next = %ld\n", p->info, p->next);
r->next = p;
}
Les pointeurs "q" et "r" sont initialiser a NULL et apres le passage de la fonction "search()" il devraient prendre les valeurs de l'élément suivant et précédant le nouvelle élément. Mais dans mon cas il reste a NULL.
Je ne trouve pas la solution.
Merci de votre aide.
Configuration: Windows XP Firefox 3.0.10
A voir également:
- [C] liste chainée, passage des pointeurs
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Passage à windows 11 gratuit - Guide
- Liste des appareils connectés - Guide
- Liste déroulante en cascade - Guide
3 réponses
Il faut que ta fonction search renvoie la cellule sur laquelle tu veux te placer. Une fois dessus, tu créés ta nouvelle cellule et tu fais pointer la cellule sur laquelle tu te trouves sur la cellule que tu viens de créer. Ensuite, tu te déplace d'une cellule pour faire pointer la suite vers le reste de la liste chainée.