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 :

Faire une pile (stack) avec glib


Sujet :

C

  1. #1
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut Faire une pile (stack) avec glib
    Bonjour,
    J'ai besoin d'utiliser une pile dans un programme, histoire de ne pas réinventer la roue j'utilise glib (qui semble assez courante et complète). Mais la librairie ne propose pas une structure "stack", je pense donc utiliser une liste simplement chaînée en insérant/supprimant au début de la liste (O(1) donc). Mais dans un tutorial d'IBM il est dit que Gimp utilise plutôt la queue (qui est une liste doublement chaînée avec plus de fonctions) pour faire une pile. Je ne vois pas trop l'intérêt, il y a un avantage ? Ou une autre manière meilleure que ce que je compte faire avec la liste chaînée ?

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Bin pour faire court, disons qu'une GQueue propose de garder en mémoire (au sein de la structure elle-même) le pointeur de début (head) et de fin (tail) de la liste, donc plus pratique à gérer après.

  3. #3
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    D'accord merci, du coup ça peut avoir un intérêt pour faire une file. Par contre pour une pile, le début de la liste est directement accessible par la GSList d'après ce que j'ai lu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    list = g_slist_prepend(list, "first");
    list = g_slist_remove(list, "first");
    Donc je trouve ça tout aussi simple que la GQueue.

    Sauf peut être dans le cas où on doit passer la structure en argument d'une fonction, où il serait alors plus compliqué de modifier le pointeur GSList d'origine. J'avais pas pensé à ça (mais dans mon cas je ne devrais avoir à le faire).

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/03/2006, 10h51
  2. Faire une procédure stockée avec deux tables
    Par mister3957 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2006, 13h54
  3. Comment faire une API Win32 avec C++ Builder
    Par Zerocool003 dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2006, 16h13
  4. Faire une liaison externe avec un fichier xml
    Par vodevil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/01/2006, 11h18
  5. Réponses: 10
    Dernier message: 30/06/2004, 13h00

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