Les partenaires publicitaires:

Comment faire une fonction de file d'attente dans la syntaxe de c

Les programmeurs utilisent des files d'attente pour représenter des structures de données qui fonctionnent par la First In, First Out (FIFO) directrice. Cela signifie toutes les données entrées dans la structure va ajouter à une liste de données, et les données qui ont été dans la liste la plus longue sera la première à être enlevé. Dans le langage de programmation C, un programmeur implémente mieux une forme de base de cette structure en utilisant une liste chaînée et divers pointeurs de maintenir l'ordre des données.

Instructions

  1. Créer la structure de noeud de données et la structure de liste. Pour la liste liée à fonctionner comme une file d'attente, la liste doit contenir des nœuds capables de référencer le noeud suivant dans la liste et deux pointeurs qui référencent le début et la fin de la liste. Ces structures d'exemple montrent un modèle de base pour les nœuds de la liste et la structure de file d'attente:

    noeud de struct {

    données int;

    * struct noeud suivant;

    };

    struct queue_list {

    struct * noeud de première // pointeur vers le premier élément

    struct * noeud Last-// pointeur sur le dernier élément

    }

  2. Mettre en œuvre un algorithme d'insertion de données. Dans une file d'attente, le programme doit toujours ajouter les données à la fin de la liste. En outre, la liste doit faire référence au dernier élément, de sorte insertions futures sachent sur quelle extrémité à ajouter. L'exemple suivant montre un algorithme simple pour ajouter un noeud avec des données sur une file d'attente:

    void insert (struct * q queue, int valeur) {



    struct * noeud newnode = malloc (sizeof (struct noeud));

    newnode-gt; data = valeur;

    newnode-gt; next = NULL;

    si (q-gt; première == NULL) {

    q-gt; première = q-gt; = dernière newnode- // si la liste est vide, première et dernière = newnode

    }

    else {




    q-gt; dernière gt; next = newnode- // ajoute newnode après le dernier élément

    q-gt; = dernière dernière gt; // le point de prochaine "dernier" pointeur vers le nouveau nœud

    }

    }

  3. Mettre en œuvre un algorithme de suppression. Cet algorithme prendra la valeur du premier noeud dans la liste. Puis, il pointera le "premier" pointeur vers le noeud suivant et supprimer le premier noeud. Cela rendra le nœud suivant la nouvelle première position sur la liste, prêt à être retiré. L'exemple suivant illustre un algorithme pour effectuer cette opération:

    int remove (struct file * q) {

    int value = q-gt; première gt; données;

    struct * noeud temp = q-gt; première;

    q-gt; première = q-gt; première gt; de prochaine // déplace le premier pointeur à l'élément suivant

    libre (temp) - // supprime l'ancien premier noeud

    retourner à valeur // retourne la première valeur;

    }

  4. Déclarer et utiliser une file d'attente. Le programmeur peut déclarer une file d'attente comme variable de type "file d'attente de struct" et utiliser les fonctions définies pour ajouter et supprimer des éléments. L'exemple suivant montre comment déclarer et utiliser une structure de file d'attente:

    int main () {

    q de file d'attente de struct;

    insérer (&q, 5) - // utilise une référence à "q" pour éviter les copies peu profondes

    insérer (&q, 6);

    int x = remove (&q) - // x = 5

» » » » Comment faire une fonction de file d'attente dans la syntaxe de c