Comment implémenter une file d'attente en C

Comment implémenter une file d'attente en C
Une structure de données en C est une méthode d'organisation et d'enregistrement des données en mémoire. La langue C comprend de nombreuses structures de données utilisateur inhérentes et définies qui peuvent être appliquées pour stocker et modifier les données de diverses manières. L'une des principales structures de données définies par l'utilisateur est files d'attente. Files d'attente sont fréquemment utilisés dans le domaine de l'informatique pour des activités telles que la manipulation des paquets système et la manipulation des événements.

Cet article discutera de tous les aspects de files d'attente et ombrer la mise en œuvre de files d'attente en programmation C.

Quelles sont les files d'attente en C

Le file d'attente est une structure de données avec une flexibilité dont la taille peut être augmentée en réponse à la demande. Les éléments de divers types de données peuvent être stockés dans le file d'attente. Le file d'attente se fait en utilisant la première approche de sortie. Le file d'attente La structure des données est utile si vous avez besoin de récupérer des données dans le même format qu'elle a été enregistrée.

Opérations de file d'attente de base en C

ENQUEUe: Cette action déplace un élément du côté final du file d'attente.

Dequeue: L'opération éliminera le composant au début du file d'attente.

Devant: Cette action renvoie la première valeur dans un file d'attente sans le supprimer.

Est vide: Cette opération vérifie si le file d'attente est nul ou non.

Arrière: L'élément de pointeur supervise la récupération de la finale file d'attente élément.

Mise en œuvre de files d'attente en C via les tableaux

La mise en œuvre du files d'attente est très simple en utilisant des tableaux pour enregistrer file d'attente éléments. Il y a deux points principaux dans files d'attente; L'un est le arrière pointeur qui est utile pour ajouter des éléments devant le files d'attente Et l'autre est devant ce qui est utile pour supprimer les éléments du file d'attente. Les deux pointeurs sont égaux à -1 lorsque le file d'attente est nul. Le pointeur arrière ne peut pas avancer lorsque le file d'attente est plein de ses éléments.

Ce qui suit est un tableau basé file d'attente Implémentation de la structure des données dans la programmation C.

#inclure
int queue [100];
Int avant, arrière = -1;
int vide ()
return (front == -1 && arrière == -1);

int complet ()
retour (arrière == 100-1);

void enqueue (int value)
if (full ())
printf ("La file d'attente avant est pleine: l'erreur s'est produite \ n");
retour;

else if (vide ())
avant, arrière = 0;

autre
arrière ++;

file d'attente [arrière] = valeur;

void dequeue ()
if (vide ())
printf ("L'erreur se produit car la file d'attente est null \ n");
retour;

else if (front == arrière)
avant, arrière = -1;

autre
front ++;


int front_element ()
if (vide ())
printf ("L'erreur se produit car la file d'attente est vide \ n");
retour -1;

Return Fitre [Front];

void print_queue ()
if (vide ())
printf ("La file d'attente est null \ n");

autre
printf ("Les éléments des files d'attente sont:");
pour (int i = front; i<= rear; i++)
printf ("% d", file d'attente [i]);

printf ("\ n");


int main()
ENQUEUe (2);
ENQUEUe (5);
ENQUEUe (88);
ENQUEUe (46);
ENQUEUe (3);
file d'attente d'impression();
printf ("Après avoir appelé la fonction de déshabitation. \ n ");
Dequeue ();
file d'attente d'impression();
printf ("L'élément présent devant la file d'attente est:% d \ n", front_element ());
retour 0;

Dans l'implémentation ci-dessus, pour montrer que la file d'attente est vide, les deux arrière et devant Les indices sont définis sur (-1). L'exécution commence à partir du principal() fonctionne où ENQUEUe () La fonction insère un composant au file d'attente arrière en augmentant le arrière index lors de la définition du file d'attente La valeur de l'arraie à la nouvelle création arrière Index à la valeur fournie. En augmentant l'index avant, le Dequeue () la méthode élimine le composant qui est à la pointe du file d'attente. Le front_element () la méthode renvoie ce qui est stocké au file d'attente avant, tandis que le file d'attente d'impression() la méthode imprime le file d'attente Composants.

Sortir

Conclusion

Le file d'attente est une structure de données avec un arrangement linéaire qui utilise le modèle FIFO, ce qui signifie que l'élément qui a été ajouté au file d'attente d'abord sera retiré d'abord. Il fournit une insertion rapide et une suppression de file d'attente articles. En termes d'allocation de mémoire, files d'attente sont efficaces. L'article ci-dessus vous a montré diverses opérations qui peuvent être effectuées sur files d'attente.