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 :

Liste ou non ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut Liste ou non ?
    voici un pseudo code de ce que je veux faire :

    tab contient un premier couple (a0,b0)
    while (il y a des couples à traiter dans tab) {
    (a,b)=premier couple de tab
    tab = enleve(tab,a,b) /* enlève le couple (a,b) à la liste de couple à traiter */
    resultat=proc(a,b);
    if (resultat==quelquechose) {
    (a1,b1)=fonction1(a,b)
    (a2,b2)=fonction2(a,b)
    tab = ajoute(tab,a1,b1) /* ajoute le couple (a1,b1) à la liste de couple à traiter */
    tab = ajoute(tab,a2,b2) /* ajoute le couple (a2,b2) à la liste de couple à traiter */
    }
    }

    Vous l'aurez compris, tab est la liste de couples à traiter. Ma question est : de quel type doit être tab ? une liste chaînée, une chaine de caractère, un tableau, ...
    En effet, je dois pouvoir faire indépendamment les deux actions suivantes :
    - ajouter un couple (a,b) à la liste de couples à traiter
    - extraire le premier couple de la liste et le supprimer de la liste


    Des idées ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    perso, je te conseillerai une petite liste chainée... c'est un peu plus long a mettre en place mais ça devrai mieux marcher... apres tout dépend du nombre de manipulation que tu as a faire, ça peux devenir trop long avec une liste chainée.

    mais bon vu comme c'est présenté une liste chainée de classe d'éléement ça me semble bien

    voir un arbre...

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Une liste chaînée avec un pointeur vers la tête et un pointeur vers le dernière élément si tu ajoutes en fin de liste. Ça s'appelle en fait une file !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    oui et?

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    et quoi ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    je pense pas que de limiter l'acces a la chaine par deux pointeurs ( donc une liste) soit bien utile dans ce cas la...car il dois inclure des valeur pas obligatoirement en tête ou queu non?

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par Trap D
    Une liste chaînée avec un pointeur vers la tête et un pointeur vers le dernière élément si tu ajoutes en fin de liste. Ça s'appelle en fait une file !
    Ah, non, pas forcément...

    Le nombre et la position des pointeurs maintenu pour la gestion d'une structure dynamique n'a rien à voir avec le terme à utiliser pour "définir" cette structure...

    Les termes "piles", "files" et "listes (doublement/simplement) chainées" fournissent des précisions sur la manière dont les éléments sont insérés/supprimés dans la structure, et sur la manière d'y accéder:
    • pile: système LIFO (ou FILO, je ne sais jamais ) - le premier rentré est le dernier sorti
    • file: système FIFO - le premier rentré est le premier sorti
    • liste: "aléatoire" - on peut ajouter, retirer ou accéder à un élément n'importe où dans la liste

    Le fait de maintenir ou non un pointeur sur le début et/ou sur la fin de la structure n'est qu'une décision purement arbitraire de la part du programmeur, et influera sur les performances de la structure, non sur son usage

    Tu peux tres bien avoir une file avec un seul pointeur maintenu (mais tu devra parcourrir toute la file pour ajouter un élément), et avoir une liste avec deux pointeurs (ou plus) maintenu...

    La seule exception est peut etre la pile, pour laquelle maintenir un pointeur sur la fin de la pile n'a que peu de sens
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    Encore merci pour vos réponses.

    J'ai opté pour une pile avec un seul pointeur vers l'élément en haut de la pile. Du coup, quand j'ajoute un élément, je le mets en haut de la pile et quand j'en suprime un, je prend celui du haut de la pile.

    Ca fonctionne très bien.

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

Discussions similaires

  1. [AC-2007] Zone de liste déroulante non actualisée
    Par glooping dans le forum IHM
    Réponses: 2
    Dernier message: 19/08/2009, 17h33
  2. Choix par défaut de liste déroulante non sélectionnable
    Par pascalbout1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 31/10/2007, 11h44
  3. [Formulaires] Liste déroulante non modifiable
    Par Syrmonsieur dans le forum IHM
    Réponses: 6
    Dernier message: 23/12/2006, 22h03
  4. Liste déroulante non modifiable
    Par Deubeul_iou_Bouch dans le forum Access
    Réponses: 4
    Dernier message: 17/05/2006, 01h56

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