Structures abstraite
Fermé
jhonbouda
Messages postés
25
Date d'inscription
samedi 21 juin 2014
Statut
Membre
Dernière intervention
30 décembre 2014
-
20 oct. 2014 à 22:24
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 22 oct. 2014 à 03:00
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 22 oct. 2014 à 03:00
4 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
21 oct. 2014 à 11:22
21 oct. 2014 à 11:22
tu parles d'une liste simplement chaînée ou doublement chaînée ?
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
21 oct. 2014 à 12:02
21 oct. 2014 à 12:02
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
Messages postés
25
Date d'inscription
samedi 21 juin 2014
Statut
Membre
Dernière intervention
30 décembre 2014
1
21 oct. 2014 à 21:45
21 oct. 2014 à 21:45
une liste simplement chainee
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
22 oct. 2014 à 03:00
22 oct. 2014 à 03:00
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