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

Autres IDE Pascal Discussion :

Liste simplement ou doublement chaînée


Sujet :

Autres IDE Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut Liste simplement ou doublement chaînée
    Bonjour,

    j'aimerais avoir votre avis sur la conception d'une structure.

    je souhaite, dans mon programme, lire un texte et enregistrer chaque nouveau mot dans une liste. Exemple : "le chien mange le chat" ==> "le chien mange chat"

    Pour ce faire voici mes déclarations de structure de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Type Element= POINTER TO RECORD
    					mot: ARRAY 50 OF CHAR;
    					suivant: Element;
    				END;
    ListeMots = RECORD 
    			début: Noeud;
    		END;
    Ici j'établis ma structure de données et je crée un pointeur en tête de liste.

    Ensuite j'ai une procédure me permettant d'ajouter un mot dans ma liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    PROCEDURE (VAR liste: ListeMots)AjouterMot*(m: ARRAY 50 OF CHAR), NEW;
    VAR courant, precedent: Element;
    BEGIN
    	courant:=liste.début;
    	WHILE (courant # NIL) & (m$ # courant.mot$) DO precedent:=courant; courant:=courant.suivant; END;
    	IF courant = NIL THEN 
    		NEW(courant);
    		courant.mot := m$;
    		IF liste.début # NIL THEN precedent.suivant:=courant; ELSE liste.début:=courant; END;
    	ELSE
    		(*rien pour le moment*)
    	END;
    END AjouterMot;
    Cette procedure et ce traitement fonctionnent. Cependant d'après vous s'agit-il d'une liste simplement chaînée ou doublement chaînée ?

    Merci.

  2. #2
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    C'est une blague ou quoi ? ou ai-je mal compris la question ?

    Dans ton type Element, tu n'as qu'un lien vers vers le suivant donc un seul lien -> liste simplement chaînée. Pour une liste doublement chaînée, il aurait fallu un lien vers l'élément précédent.

    Une question me vient : c'est ton programme et tu ne sais pas ce que tu as mis en oeuvre, c'est assez curieux...

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    Citation Envoyé par e-ric Voir le message
    C'est une blague ou quoi ? ou ai-je mal compris la question ?

    Dans ton type Element, tu n'as qu'un lien vers vers le suivant donc un seul lien -> liste simplement chaînée. Pour une liste doublement chaînée, il aurait fallu un lien vers l'élément précédent.

    Une question me vient : c'est ton programme et tu ne sais pas ce que tu as mis en oeuvre, c'est assez curieux...
    Merci pour la réponse. En fait, c'est un bout de code que j'ai récupéré.
    en fait, la variable locale appelée precedent dans la procédure m'a fait hésité dans l'interprétation du code.
    voilà pourquoi je posai cette question.

  4. #4
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Ce qui est important, c'est ce que décrit le type de données, c'est là que doit se concentrer ton analyse pour une telle question.

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Par défaut
    Citation Envoyé par e-ric Voir le message
    Ce qui est important, c'est ce que décrit le type de données, c'est là que doit se concentrer ton analyse pour une telle question.
    merci pour la réponse.

Discussions similaires

  1. Probleme liste simplement chaînée
    Par sorry60 dans le forum C
    Réponses: 23
    Dernier message: 19/11/2005, 20h17
  2. Listes doublement chaînées
    Par nicolas66 dans le forum C++
    Réponses: 5
    Dernier message: 19/11/2005, 12h17
  3. Liste doublement chaînée
    Par garf dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2005, 09h33

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