IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Listes chainées questions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut Listes chainées questions
    voilà j'ai une question, regardez l'image pleaze :



    voilà ma question : puis-je créer une liste chainées qui me permette de passer par exemple de B1 à F1 ?

    comme vous le constatez la chaine A1 est reliée à F1 , B2 reliée à F2, et C3 reliée à F3 et que l'avant dernière reçoit la chaine A1 et B2 ...

    Si oui comment puis-je l'implémenter ??

    Merci

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    c'est une simple liste chainée : chaque maillon pointe vers un seul successeur.
    Donc une liste chainée classique avec un champ *suiv afin de pointer vers le maillon suivant.
    Ensuite, à toi de faire les bonnes relations.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Le problème, c'est qu'il y a au moins deux maillons qui pointent vers deux successeurs différents...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le problème, c'est qu'il y a au moins deux maillons qui pointent vers deux successeurs différents...
    si c'est que ca, une liste chainée n'est pas nécessairement cantonnée à un predecesseur et un suivant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef struct link_list
    {
       int data; // ca ou n importe quoi d autre
       link_list *post1;
       link_list *post2;
    } link_list;
    ok, c est pas de la grande proprete

    bon, apres, j ai pas bien percute la raison du pourquoi de la question mais ca c un autre probleme

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Déjà, pour les successeurs, il ne faut pas faire N variables.
    En supposant que le nombre de successeurs maximum soit fixe, on a ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #define MAX_SUCCESSORS 10
     
    struct link_list
    {
    	int data; // ca ou n importe quoi d autre
    	struct link_list *posts[MAX_SUCCESSORS];
    }
    typedef struct link_list link_list;
    Si le nombre max n'est pas fixe, il faudra utiliser un truc encore plus élaboré qu'un tableau.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut
    ah, tout de suite c plus classe
    un chouille verbeux a mon gout, mais classe

    Si le nombre max n'est pas fixe, il faudra utiliser un truc encore plus élaboré qu'un tableau.

    une liste chainee de successeurs, ouarf

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le problème, c'est qu'il y a au moins deux maillons qui pointent vers deux successeurs différents...
    : avais pas vu
    Ben dans le cas il faut augmenter le nombre de successeurs
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    oui mais le problème c'est qu'on ne connai pas le nombre exacte de successeurs, je vais essayer de trouver une autre méthode , je vais essayer struct list_link *ptr[MAX_SUCCESSEUR] (je ne savais pas qu'on pouvait cela)

    comme on ne connais pas le nombre de successeurs j'aurai juste qu'à allouer le tableau

    merci

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    ok encore une question :
    j'espère ne pas me faire uher de honte voilà :
    #define MAX_SUCCESSORS 3
    struct compartiment
    {
    char *type;
    int place;
    };

    struct link_list
    {
    struct compartiment;
    struct link_list *posts[MAX_SUCCESSORS];
    }
    typedef struct link_list link_list;
    si par exemple j'ai cette implémentation

    cela veut dire que la liste de la structure compartiment pourra pointer sur 3 listes chainées différentes ?

    est-ce que j'aurai ceci en mémoire :

Discussions similaires

  1. question liste chainée
    Par débutant_01 dans le forum C
    Réponses: 1
    Dernier message: 26/12/2014, 13h05
  2. Question sur les listes chainées.
    Par deubelte dans le forum C++
    Réponses: 15
    Dernier message: 18/03/2010, 13h29
  3. Listes chaines, quelques questions de pratique
    Par student_ dans le forum Débuter
    Réponses: 3
    Dernier message: 16/01/2010, 00h16
  4. des questions sur les listes chainées
    Par hunter99 dans le forum C
    Réponses: 13
    Dernier message: 05/12/2006, 22h51
  5. tri de liste chainée
    Par RezzA dans le forum C
    Réponses: 7
    Dernier message: 26/01/2003, 20h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo