Structures abstraite
jhonbouda
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
bonjour avez vous une idee sur les differents moyens de supprimer un element a l'interieur d'une liste chainee? merci pour votre reponse
A voir également:
- Structures abstraite
- No Man's Sky - Les structures ne chargent pas et crash au lancement du jeu - Forum Jeux vidéo
4 réponses
Bonjour
Il n'y a pas vraiment une idée ou différentes manières car le principe reste le même c'est dire revoir tous les pointeurs des cellules précédentes et suivantes pour les relier donc si tu veux supprimer une cellule dans ta liste chaînée tu dois prendre en compte les pointeurs précédents et le pointeur suivant de la cellule que tu veux supprimer à partir de là, libre à toi de trouver la façon la plus logique ou rapide de supprimer ta cellule exemple
à bientôt
Il n'y a pas vraiment une idée ou différentes manières car le principe reste le même c'est dire revoir tous les pointeurs des cellules précédentes et suivantes pour les relier donc si tu veux supprimer une cellule dans ta liste chaînée tu dois prendre en compte les pointeurs précédents et le pointeur suivant de la cellule que tu veux supprimer à partir de là, libre à toi de trouver la façon la plus logique ou rapide de supprimer ta cellule exemple
#include <stdio.h> #include <stdlib.h> //Structure liste typedef struct s_List{ char *pChar; struct s_List *pNext; struct s_List *pPrev; }ts_List; int main ( void ){ //Liste déja suposer alouer et est une liste ts_List *ptr_List; //Liste chaînée ts_List *ptr_Suprim; //Celule a suprimer //Exemple Cas de supression d'une cellule if( ptr_Suprim->pPrev ){ ptr_Suprim->pPrev->pNext = ptr_Suprim->pNext; } else //Ptr_Suprim etait la première cellule ptr_List = ptr_Suprim->next; if( ptr_Suprim->pNext ){ ptr_Suprim->pNext->pPrev = ptr_Suprim->pPrev; } //Supression free( ptr_Suprim->pChar ); free( ptr_Suprim ); return ( EXIT_SUCCESS ); }
à bientôt
jhonbouda - 21 oct. 2014 à 21:45
une liste simplement chainee
Pour une liste simplement chaînée, tu dois :
- trouver l'élément de la liste que tu veux supprimer (E) et noter vers quel élément suivant il pointe (E+1)
- trouver l'élément précédant celui que tu veux supprimer (E-1), et faire pointer l'indication de l'élément suivant sur E+1
ensuite, tu supprimes E de la mémoire, si tu n'en as plus l'usage.
Dal
une liste simplement chainee
Pour une liste simplement chaînée, tu dois :
- trouver l'élément de la liste que tu veux supprimer (E) et noter vers quel élément suivant il pointe (E+1)
- trouver l'élément précédant celui que tu veux supprimer (E-1), et faire pointer l'indication de l'élément suivant sur E+1
ensuite, tu supprimes E de la mémoire, si tu n'en as plus l'usage.
Dal