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 :

différence entre une file vide et une avec 1 seul élément


Sujet :

C

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Par défaut différence entre une file vide et une avec 1 seul élément
    Slt , j’ai une question sur les files contigus ; comment on fait la différence entre une file complètement vide et une file qui ne contient qu’un seul élément prcq dans les 2 cas f .tete=0 f.queue=0
    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    file vide

    f.tete = NULL ;
    f.queue = NULL ;

    file à 1 elt :

    f.tete = elt0 ;
    f.queue = elt0 ;

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Par défaut
    ok, si j'ai un seul elmt dans la file cmt je peux savoir si elle est vide ou pas (dans le cas ou je n'ai qu' 1 seul elmt a f.tab[0])

  4. #4
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Je ne comprends pas ta question. C'est quoi f.tab[0] ???
    Comment définis-tu ta file ? En cas de doute, n'hésites pas à consulter cet article : http://nicolasj.developpez.com/articles/file/

    Sinon, comme l'a dit souviron34, si la file est vide, f.tete est à NULL. Et si elle n'est pas vide, f.tete pointe sur le premier élément.

  5. #5
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Par défaut
    Pour ne pas te prendre la tête la dessus, rajoute un champ taille à ta file.

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Par défaut
    voila la file
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct file
    {
    	int tete;
    	int queue;
    	int tab[taille_max];//taille_max est un define
    }file;

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    eh bien dans ce cas-là

    file vide

    tete = -1
    queue = -1

    file à 1 elt :

    tete = 0
    queue = 0

    si tu raisonnes en termes d'indices. Si c'est en terme de nombre :

    vide :

    tete = 0
    queue = 0

    1 elt :

    tete = 1
    queue = 1

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    mais si tu fais une file, une vraie, alors vaudrait mieux faire une liste chaînée :


    PSEUDO-CODE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      struct _tab_elt  
        { ....
           struct _tab_elt previous ;
           struct _tab_elt next ;
       } tab_elt ;
     
      tab_elt *list = NULL 
     
      liste vide : list = NULL
     
      1 elt :  liste = elt
                elt next = NULL
                elt previous = NULL

  9. #9
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Par défaut
    la file avec la liste chainée je metrise mais c'est la contigu qui me pose des problemes

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    c'est la même chose. Et pour savoir si c'est élément 0 ou si c'est vide, il suffit d'initialiser le nombre à -1 comme je disais au dessus :

    Code : 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
     
    typedef struct Ptr_file
    {
    	int tete;
    	int queue;
    	int tab[taille_max];//taille_max est un define
    }file;
     
    file Mafile ;
     
    /* Initialise la file */
    Mafile.tete = -1 ;
    Mafile.queue = -1 ;
     
    /* Crée le premier élément */
     
    Mafile.tete = 0 ;
    Mafile.queue = 0 ;
    Mafile.tab[0] = xxxxxx ;
     
    /* Crée le second élément */
     
    Mafile.tete = 0 ;
    Mafile.queue = 1 ;
    Mafile.tab[1] = yyyyyy ;
     
    ...................

Discussions similaires

  1. Réponses: 27
    Dernier message: 26/10/2011, 14h05
  2. Différence entre méthode d'inclusion d'une feuille CSS
    Par Death83 dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 11/01/2006, 15h00
  3. Ajouter un enregitrement a une table vide en VBA avec access
    Par Mateache dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/01/2006, 15h36
  4. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24
  5. Différence entre majuscule et minuscule dans une requête
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/06/2004, 14h42

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