A voir également:
- Liste chainee circulaire
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Liste site streaming illégal - Accueil - Services en ligne
1 réponse
Bonjour,
Les circulaires simplement chaînées sont les plus simples en C. Il suffit mémoriser le dernier élément pour gérer la liste car le premier est le suivant du dernier.
Pour insérer un item
si la liste est vide:
Pour parcourir ... ... Le suivant s'appelle pSuivant et le dernier pDernier.
Pour supprimer, il faut trouver l'élément tel que pItem->pSuivant == pElementASupprimer et remplacer son suivant et peut-être mettre à jour lst.pDernier.
Les circulaires simplement chaînées sont les plus simples en C. Il suffit mémoriser le dernier élément pour gérer la liste car le premier est le suivant du dernier.
struct Noeud { int x; struct Noeud *pSuivant; }; struct Liste { struct Noeud *pDernier; }; struct Noeud* dernier( struct Liste lst ) { return lst.pDernier; } struct Noeud* premier( struct Liste lst ) { return lst.pDernier ? lst.pDernier->pSuivant : NULL; } bool estVide( struct Liste lst ) { return lst.pDernier == NULL; }
Pour insérer un item
si la liste est vide:
pItem->pSuivant = pItem; // seul donc suit lui-même lst.pDernier = pItem; // devient le dernier et aussi le premiersi la liste n'est pas vide, en appelant pPrecedent un élément de la liste
pItem->pSuivant = pPrecedent->pSuivant; pPrecedent->pSuivant = pItem; if (lst.pDernier==pPrecedent) lst.pDernier = pItem; // devient dernier
Pour parcourir ... ... Le suivant s'appelle pSuivant et le dernier pDernier.
Pour supprimer, il faut trouver l'élément tel que pItem->pSuivant == pElementASupprimer et remplacer son suivant et peut-être mettre à jour lst.pDernier.