Liste chaînée en c
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Liste chaînée en c



  1. #1
    Leond95

    Liste chaînée en c


    ------

    Bonjour a tous,

    S'ils vous plait est ce que quelqu'un peut m'expliquer comment déclarer en c :
    Une liste chaînée
    Un(e) PILE
    Un(e) FILE

    Cordialement

    Ps : si vous avez des exemples ça sera mieux

    -----

  2. #2
    Tryss2

    Re : Liste chaînée en c

    On peut faire un truc du genre :

    Code:
    // liste doublement chainée
    struct Chaine {
        void* element; // type à remplacer par celui souhaité
        struct Chaine * suivant;
        struct Chaine * precedent;
    };
    
    // Une pile est une liste chainée dans laquelle on ajoute et enlève les éléments au début, donc on a une variable qui pointe sur le début de la liste chainée.
    struct Pile {
        struct Chaine * top;
    };
    
    // Une file est une liste chainée dans laquelle on ajoute les éléments au début, et on les retire à la fin. On a donc une variable qui pointe sur le début de la liste chainée, et une sur la fin .
    struct File {
        struct Chaine * debut;
        struct Chaine * fin;
    };
    Après, il faut écrire les fonctions pour manipuler ces structures

  3. #3
    Jack
    Modérateur

    Re : Liste chaînée en c

    Pour la pile, j'ajouterais un pointeur sur sa tête, de manière à ne pas avoir à parcourir toute la pile à chaque fois pour accéder à son sommet.

  4. #4
    Tryss2

    Re : Liste chaînée en c

    Dans mon idée, top est déjà le pointeur sur la tête : ça ne sert à rien de garder un pointeur sur le fond de la pile

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : Liste chaînée en c

    Et comment sait-on qu'elle est vide dans ce cas?

  7. #6
    Leond95

    Re : Liste chaînée en c

    void* element ça sert a quoi?

  8. #7
    Jack
    Modérateur

    Re : Liste chaînée en c

    Je suppose que ça doit pointer sur la donnée à stocker, mais pourquoi utiliser un pointeur? Je trouve qu'il serait plus simple d'y stocker directement la donnée, en tout cas c'est suffisant la plupart du temps, sauf si on veut stocker des chaines par exemple.

    Mais si on y stocke directement la valeur comme ça se pratique généralement, il faudra ajouter un moyen de déterminer si la pile est vide ou pas car ce n'est pas la donnée qui pourra donner cette information.

  9. #8
    Tryss2

    Re : Liste chaînée en c

    Des chaines, des structures, n'importe quoi d'alloué de façon dynamique... Je ne sais absolument pas ce que Leond85 veut mettre dedans, donc je mets un pointeur générique.

    Et sinon, la pile est vide quand top == NULL, tout simplement.

  10. #9
    Jack
    Modérateur

    Re : Liste chaînée en c

    Citation Envoyé par Tryss2 Voir le message
    Et sinon, la pile est vide quand top == NULL, tout simplement.
    C'est une façon de gérer la pile en effet. Il faudra bien vérifier l'état de précédent et suivant pour mettre à jour top. Je ne suis pas sur qu'encapsuler une structure dans une autre structure soit la façon la plus simple d'aborder la déclaration de la pile vu que Leond95 a l'air de débuter

Discussions similaires

  1. liste chainée, c++
    Par kemide dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 20/08/2015, 23h05
  2. [C]Liste chainée
    Par invite8b421ec7 dans le forum Programmation et langages, Algorithmique
    Réponses: 29
    Dernier message: 09/04/2011, 11h09
  3. liste chainée
    Par invite69686042 dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 01/01/2011, 19h18
  4. liste chainée en C
    Par invite69686042 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 01/01/2011, 11h31
  5. liste chainée
    Par invite69686042 dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 11/12/2010, 15h35