programmeurs utilisent les files d'attente pour représenter des structures de données qui fonctionnent par la First In, First Out ( FIFO) directrice. Cela signifie que toutes les données entrées dans la structure vont 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 différents pointeurs de maintenir l'ordre des données. Instructions
1
créer la structure de nœud de données et la structure de la liste. Pour que la liste liée à fonctionner comme une queue, la liste ne doit contenir de noeuds capables de référence au noeud suivant dans la liste et deux pointeurs qui référencent le début et la fin de la liste . Ces structures montrent par exemple un modèle de base pour la liste des nœuds et la structure de file d'attente :
struct noeud {
des données int ;
struct * Node prochaine ;
< p >} ;
struct queue_list {
struct * premier noeud ; //pointeur vers le premier élément
struct noeud * dernier ; //pointeur sur le dernier élément < br >
}
2
implémenter 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 , donc insertions futures sachent sur quelle extrémité à ajouter. L'exemple suivant montre un algorithme simple d'ajouter un nœud avec les données sur une file d'attente :
void insert (struct file * q , int value) {
struct noeud * newnode = malloc ( sizeof ( struct node) ) ;
newnode -> data = value;
newnode - > suivant = NULL;
si (q- > premier == null) {
q -> first = q -> nom = newnode ; //si la liste est vide , le premier et le dernier = newnode
}
else { < br >
q- > dernier - > suivant = newnode ; q -> nom = dernier -> next //append newnode après le dernier élément
; //Point "dernier" pointeur vers l' nouveau nœud
} }
3
implémenter un algorithme de suppression . Cet algorithme prend la valeur du premier noeud dans la liste. Ensuite, il pointera le "premier" pointeur vers le nœud suivant et supprimez le premier noeud. Cela rendra le nœud suivant la nouvelle première position sur la liste, prêt à être retiré . L'exemple suivant montre un algorithme pour effectuer cette opération:
int remove (struct file * q ) {
int value = q- > first - > data ;
struct noeud * temp = q -> première ;
q -> first = q- > first -> next ; //déplace le premier pointeur vers le prochain point
libre (temp) ; //supprime la première valeur vieux nœud d'iPhone de
de retour; //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 " struct file d'attente " et d'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 () {
struct file d'attente q;
insert ( & q , 5); //utilisations une référence à "q" pour éviter les copies peu profondes
insert ( & q , 6) ;
int x = supprimer ( & q); //x = 5
< br >