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 :

[pseudocode]Incompréhesnion pour un tri sur index


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 3
    Par défaut [pseudocode]Incompréhesnion pour un tri sur index
    Bonjour a tous voila je suis un débutant , je m'appelle Matt et j'ai 19 ans. j ai commencé des études en administration des réseaux avec une année de programmation très légere à mon actif donc je pense que vous saurez répondre assez facilement a cette question (ou du moins m'expliquer) vu que ca concerne les listes.


    Voila , on m'a demandé d'ecrire une procedure "insereDansListeEtIndexSurNom(^liste , ^l_index , datas) qui

    -crée un maillon et y range les données passées en paramètres

    -Ajoute ce maillon a l arriere de la liste dont on passe l'adresse en paramètre

    -insere un maillon dans l'index dont l'adresse est passée en paramètre , cet index est "trié" pour lire les maillons de la liste dans l'ordre croissant sur les "noms"


    Bon , ne m'en sortant pas tres bien on m'a envoyé une solution -qui contient peut etre des fautes- , mais on ne m'a pas tout epxliqué alors je viens faire appel à vous


    Voici sa solution

    Procédure InsererDansListeEtIndexSurNom(l : ^liste, ind : ^l_index, d : data) EST
    Var Tmp : ^maillon ;
    Tmpa : ^m-index ;
    Tmpm : ^m-index ;
    Debut
    Tmp <- Alloue (taille (maillon)) ;
    Tmpm <- Alloue (taille (m-index)) ;
    (L -> dernier -> suivant ) <- Tmp ;
    (Tmp -> suivant)  NULL ;
    (Tmp -> données.nom) <- d.nom ;
    (Tmp -> données.age) <- d.age ;
    Si ((l -> premier) == NULL) ALORS
    (l -> courant) <- Tmp ;
    (l -> premier) <- Tmp ;
    (l -> dernier) <- Tmp ;
    Fin Si ;
    Si ((ind -> premier) == NULL) ALORS
    (ind -> courant) <- Tmpm ;
    (ind -> premier) <- Tmpm ;
    (ind -> dernier) <- Tmpm ;
    (Tmpm -> maille) <- Tmp ;
    (Tmpm -> suivant) <- NULL ;
    Fin Si ;
    Sinon Si ((ind -> premier -> maille -> données.nom) > d.nom) ALORS
    insérerDébutListe(ind, Tmp) ;

    Sinon Si ((ind -> dernier -> maille -> données.nom) < d.nom) ALORS
    (ind -> courant)<- (ind -> dernier) ;
    insérerAprèsCourant(ind, tmp) ;
    Sinon
    (ind -> courant) <- (ind -> premier) ;
    TANT QUE (((ind -> courant -> suivant) != NULL) ET ((ind -> courant -> maille -> données.nom) < d.nom)) FAIRE
    Tempa <- (ind -> courant) ;
    (ind -> courant) <- (ind -> courant -> suivant) ;
    Fin TANT QUE ;
    (ind -> courant) <- Tempa ;
    insérerAprèsCourantIndex(ind ; Tmp) ;
    Fin Si ;
    Fin procédure ;
    je ne comprend pas la fin , mais si on savait m'expliquer la ligne qui est en rouge je pense que je m'en sortirai
    je sais qu'il s'agit d'un tri mais je ne comprend pas bien

    [Note ] "L->dernier" signifie 'le dernier de l'objet pointé par L'
    et '^' = pointeur de



    Voila , désolé si j'ai fait long


    merci d'avance pour votre réponse/explication !

  2. #2
    Membre expérimenté
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Par défaut
    Après la ligne rouge :
    Si d.nom est "plus petit" que le nom du premier maillon de l'index, on insère le maillon au début de l'index
    sinon si d.nom est plus grand que le nom du dernier index, on insère le maillon à la fin de l'index
    sinon on met le pointeur de l'index au début et on parcours l'index jusqu'à trouver un nom plus grand que celui des données insérer. Lorsqu'on en trouve un, on insère le maillon juste avant celui-ci

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 3
    Par défaut
    Ah oki c'était donc ca !

    Eh bien un grand merci à toi en tout cas , car ca me tracassait depuis 2 jours.


    Merci beaucoup pour l'explication

    A bientot

    Matt.

  4. #4
    Membre expérimenté
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Par défaut
    content de t'aider, et le serais encore plus avec un

    Strab

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 3
    Par défaut
    Ah ouip c'est vrai , pas l'habitude de voir ce bouton sur les autres forums


    Voila Voila

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

Discussions similaires

  1. TRI sur INDEX à plusieurs niveaux
    Par sylaG dans le forum Word
    Réponses: 4
    Dernier message: 06/06/2012, 12h07
  2. Tri sur des index ou des références
    Par beegees dans le forum C++
    Réponses: 2
    Dernier message: 10/05/2008, 12h29
  3. Tri sur tableau multi pour génération de jointures SQL
    Par Djakisback dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/09/2007, 14h58
  4. [VBA-E] Macro Pour Faire un Tri sur plage variable
    Par tabarly35 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2006, 19h02
  5. [VBA-E] tri sur VBA pour Excel
    Par mariedrouin dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/05/2006, 13h32

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