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 :

Liste doublement chainée : ajouter un élément après une position donné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 actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 46
    Par défaut Liste doublement chainée : ajouter un élément après une position donnée
    Bonjour,

    Écrire un module permettant d'ajouter dans une liste doublement chainée après une position donnée.

    Code Algorithme : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    PROCEDURE AjouterApresPos ((E/S) tete : liste ; queue : liste ; pos : entier)
     
    VARIABLE
     
    P ; r : liste
     
    i : entier
     
    DEBUT 
     
           P <-- tete
     
        Tantque P =! pos et P =! NIL Faire 
     
              i <-- i + 1
        Fintantque
     
             Allouer(r)
     
             Lire(r^.info)
     
             r^.suivant <--

    Je n'arrive pas à traduire ma simulation et faire intervenir la queue.

    Alors ce serait super, si vous vouliez m'aider.

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 215
    Par défaut
    Tu écris un peu n'importe quoi au hasard. Ce n'est pas comme ça qu'on programme.

    Tu as ces 3 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tantque P =! pos et P =! NIL Faire 
        i <-- i + 1
    Fintantque
    Est-ce que tu vois pourquoi ce bloc de 3 lignes est catastrophique ?

    Reprends les tout premiers cours que tu as eus, au collège peut-être. Relis les.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 46
    Par défaut
    Ok, je vais d'abord le faire pour une liste simplement chainée et ensuite vous pourriez me guider sur la liste doublement chainée.

    Code Algorithme : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    PROCEDURE Ajout ((E/S) tete : liste)
     
                                 VARIABLE
     
                                   P : liste
     
    DEBUT
     
            Allouer(P)
     
            Lire(P^.info)
     
             P^.suivant <-- tete
     
             tete <-- P
     
    FIN

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 46
    Par défaut
    Vous êtes là ?

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 46
    Par défaut
    Code Algorithme : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    PROCEDURE AjouterApresPos Liste doublement chainée ((E/S) liste, queue : liste ; Pos : Variant)
     
     
                                  VARIABLES
     
                                  P, r : Liste
     
                                  i : entier
     
     DEBUT
     
                                P ← tete
     
                                i ← 1
     
                           Tantque P<> Nil et i <> Pos Faire
     
                               P ← P^.suivant
     
                                i ← i +1
     
                           Fintantque
     
                           Si P^.suivant <> Nil alors
     
                               Allouer(r)
     
                               Lire(r^.info)
     
                               r^.precedent ← P
     
                               r^.suivant ← P^.suivant
     
                               P^.suivant ← r
     
                              P^.suivant^.suivant ← r
     
                         Sinon
     
                              AjoutEnQueue (Queue)
     
                         Finsi
     
     FIN

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 215
    Par défaut
    Gros progrès.
    Les 2 premiers messages valaient 0 sur 20, et là, on est proche de la moyenne.

    Je remplacerais le mot suivant par précédent ... une fois. Je te laisse trouver où.

    Et à la fin, tu as recopié un truc trouvé quelque part : AjoutEnQueue(Queue)
    Il faut effectivement traiter ce cas, mais tu ne le fais pas.

    Dans ton tout premier message, la ligne d'entête disait : PROCEDURE AjouterApresPos ((E/S) tete : liste ; queue : liste ; pos : entier)Maintenant, c'est PROCEDURE AjouterApresPos Liste doublement chainée ((E/S) liste, queue : liste ; Pos : Variant)Tu sais expliquer/justifier les changements ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un élément dans une liste chainée.
    Par fourize dans le forum Général Java
    Réponses: 7
    Dernier message: 12/05/2012, 10h26
  2. Réponses: 2
    Dernier message: 24/03/2007, 12h48
  3. Réponses: 12
    Dernier message: 12/03/2007, 16h58
  4. Correction pour ajouté un élément dans une liste
    Par Rifton007 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/01/2007, 11h09
  5. ajouter un élément dans une liste
    Par Le Mérovingien dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 02/07/2006, 17h43

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