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

Algorithmes et structures de données Discussion :

Exercice liste liée


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut Exercice liste liée
    Bonjour à tous,

    Je suis à quelques jours d'un examen d'algo , donc je tente de faire quelques exercice que j'ai pu trouvé sur internet traitant de la matière vue un cours malheureusement il s'avère que j'ai quelques problemes de compréhension...

    Pour commencer voici un lien vers le pdf de l'exercice que j'essaye de comprendre: http://www.montefiore.ulg.ac.be/serv...ier2007-1b.pdf (pour l'énoncé voir page 2 )

    En ce qui concerne les parties : "étude de lénoncé", "principe de la solution", "Tester la couleur" et "calcul de p pour B[i,j]" aucun soucis , je comprends parfaitement le raisonnement, le probleme c'est que ca se corse quand on arrive au point 2.4 "algorithme complet", je dois avouer que je n'ai jamais compris grand chose au liste liée et c'est pourquoi je fais appel à vous pour que ca devienne un peu plus clair.

    J'ai evidement déjà tenté de me renseigner sur internet (ainsi que dans mon bouquin aussi) mais rien y fait...
    J'aimerais que vous essayez si possible de m'expliquer un peu le raisonnement et les differente étape de la resolution.

    J'imagine que cette liste liée n'est pas bien dure à comprendre, mais je vous l'ai dit, les liste liée et moi...


    Je vous remercie d'avance, j'espere que accepterez de m'aider.

  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,

    alors pour ce qui est de ton problème, je suppose qu'une liste liée est ce que l'on nomme communément une liste chaînée...
    Donc :
    - quand tu lis l'énoncé, tu t'aperçois que chaque maillon de ta liste doit contenir deux informations : les coordonnées (i,j) des éléments solutions.
    - mais pour que ce soit une liste, il faut aussi qu'il y ait un élément "suivant" afin de savoir quel est le maillon suivant. Si le maillon suivant est NULL, alors c'est que l'on est à la fin de la liste.
    - donc pour ton problème, tu parcours ton tableau B, dès que tu trouves une couleur solution, tu crées un nouveau maillon auquel tu affectes les coordonnées de la couleur solution et tu ajoutes ce maillon à la liste.
    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
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    En fait, une liste liée (ou liste chainée), c'est un ensemble de cellules qui se baladent en mémoire. Une cellule est une zone mémoire composée de données et d'un "lien" vers la cellule suivante. Ce lien est en fait l'adresse d'une autre cellule (tout simplement).
    Donc, si on est sur une cellule, on a accès à ses données, mais aussi à la cellule suivante (puisqu'on connait son adresse). Ce qui fait que pour accéder au 10em élément d'une liste, il faut absolument parcourir tous les éléments précédents.

    Ce qu'on appelle 'liste' n'est en fait que la variable qui va stocker l'adresse du premier élément.


    Bon, comme ça doit pas être très clair, j'ai préféré faire un petit dessin (j'espere que ça ira mieux avec).
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    Je vous remercie tout les deux, c'est déjà un peu plus clair maintenant, mais j'ai encore quelques questions de "vocabulaire" (en rapport avec le programme, voir 2.4):

    J'aimerais savoir ce que signifie lorsqu'on écrit:

    "cell=record.....end" (<--- parcours de toute les cellule ? )

    "lst,...:cell" (avec la flèche verticale evidement)

    " lst:=nil " (lst (= liste?) et d'ou il sort le "nil" ? )

    Et pour finir que veut dire le concepteur du programme lorsqu'il mentionne la commande:

    "Exploiter p pour mise à jour pmax, nbel et liste"

    Voila je pense que c'est tout, pardon pour ces questions relativement idiotes.

    Je m'excuse pour le double post mais si vous ne repondez parce que les questions ne vous semblent pas clair n'hésitez à demander des precisons, j'en donnerai autant que je peux

  5. #5
    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,

    pour le NIL, il est équivalent au NULL du C, C++, Java ou au NIL de Pascal et signifie que le maillon que tu pointes n'existe pas, donc que tu es à la fin de la liste (ou que la liste est vide).

    Pour les autres notations, connaît pas Je pense que ça doit dépendre du contexte de l'exercice que tu traites...
    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.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    Merci c'est deja ca en moins à comprendre

    J'ai continué a essayer de me renseigner et d'apres ce que j'ai compris je crois que "record" correspond , à quelques détail près, à un tableau (array) mais je n'en suis pas sur , il faudrait que quelqu'un me le confirme.

    Et pour ce qui est du reste je ne sais toujours pas

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    Bonjour,


    Pour "cell : record .... end", c'est la définition d'un type de donné, une structure qui s'appelle 'cell' et qui se déclare en remplaçant les '...' par les champs de ta structure (ces champs ne sont pas donnés, car tu dois les trouver dans une autre partie de l'énoncé). 'record' et 'end' sont des balises qui encadrent la définition de la structure.

    Pour 'lst : cell' (avec la fleche vers le haut). Je pense que c'est juste la déclaration d'un pointeur qu'on appelle 'lst' sur un élément de type 'cell'. Peut être cette fleche dans ton langage indique 'pointeur sur'.

    Pour "Exploiter p pour mise à jour pmax, nbel et liste", c'est expliqué au chap 2.5.

    Bon courage

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    Citation Envoyé par Alikendarfen Voir le message
    Bonjour,
    Pour "cell : record .... end", c'est la définition d'un type de donné, une structure qui s'appelle 'cell' et qui se déclare en remplaçant les '...' par les champs de ta structure (ces champs ne sont pas donnés, car tu dois les trouver dans une autre partie de l'énoncé).
    Oui d'accord je pense que je commence à comprendre , il faudrait juste que je trouve ces fichu champ de structure pour que ce soit vraiment clair

    Concernant les pointeurs, est ce que tu pourrais m'en dire un peu plus ?
    parce que j'ai un peu de mal à me faire une idée de ce que ca represente et de son rôle dans les programme.

Discussions similaires

  1. Pb listes liées javascript/php
    Par boo64 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/06/2006, 12h35
  2. Deux listes lies et un lien
    Par arti2004 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2006, 16h44
  3. [MySQL] 1 table et 2 listes liées
    Par Ekik dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/02/2006, 16h47
  4. XMLHTTPRequest et listes liées
    Par ben23 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/12/2005, 16h32
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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