Une file d'attente est une liste linéaire spéciale. Elle autorise uniquement les opérations de suppression à l'avant (avant) de la table et les opérations d'insertion à l'arrière (arrière) de la table. Comme la pile, la file d'attente est une table linéaire avec des opérations restreintes à la fin où l'opération d'insertion est effectuée. est appelée la file d'attente. La fin où l'opération de suppression est effectuée est appelée la tête de la file d'attente lorsqu'il n'y a aucun élément dans la file d'attente, elle est appelée une file d'attente vide ;
La file d'attente est une table linéaire spéciale. La particularité est qu'elle n'autorise les opérations de suppression qu'au début (avant) de la table. Le backend (arrière) de la table effectue les opérations d'insertion. Comme la pile, la file d'attente est une table linéaire avec des opérations limitées. La fin qui effectue l'opération d'insertion est appelée la queue de la file d'attente, et la fin qui effectue l'opération de suppression est appelée la tête de la file d'attente. Lorsqu’il n’y a aucun élément dans la file d’attente, on parle de file d’attente vide.
Les éléments de données de la file d'attente sont également appelés éléments de file d'attente. L'insertion d'un élément de file d'attente dans la file d'attente est appelée mise en file d'attente, et la suppression d'un élément de file d'attente de la file d'attente est appelée sortie de file d'attente. Étant donné que la file d'attente autorise uniquement l'insertion à une extrémité et la suppression à l'autre extrémité, seul l'élément qui entre dans la file d'attente le plus tôt peut être supprimé de la file d'attente en premier. La file d'attente est donc également appelée premier entré, premier sorti (FIFO - premier en premier sorti) liste linéaire.
Implémentation d'une liste chaînée de file d'attente
Dans le processus de formation de la file d'attente, le principe de la liste chaînée linéaire peut être utilisé pour générer une file d'attente.
Une file d'attente basée sur une liste chaînée doit créer et supprimer dynamiquement des nœuds, ce qui est moins efficace, mais peut croître dynamiquement.
La file d'attente utilise FIFO (premier entré, premier sorti). Les nouveaux éléments (éléments en attente d'entrer dans la file d'attente) sont toujours insérés à la fin de la liste chaînée, et lors de la lecture, ils commencent toujours la lecture à partir de la tête de la liste chaînée. Chaque fois qu'un élément est lu, un élément est libéré. Ce qu'on appelle la création dynamique et la libération dynamique. Il n’y a donc aucun problème tel qu’un débordement. Étant donné que la liste chaînée est indirectement formée par la structure, elle est également pratique à parcourir.
Opérations de base de la file d'attente
(1) Initialiser la file d'attente : Init_Queue(q), condition initiale : la file d'attente q n'existe pas. Résultat de l'opération : Une file d'attente vide est construite ;
(2) Opération d'entrée dans la file d'attente : In_Queue(q,x), condition initiale : l'équipe q existe. Résultat de l'opération : Pour la file d'attente q existante, insérer un élément Vide, résultat de l'opération : supprimer l'élément de tête de file d'attente et renvoyer sa valeur, la file d'attente change
(4) Lire l'élément de tête de file d'attente : Front_Queue(q, x), condition initiale : la file d'attente q existe et n'est pas vide, Résultat de l'opération : Lire l'élément de tête de file d'attente et renvoyer sa valeur, la file d'attente reste inchangée
(5) Opération de file d'attente vide : Empty_Queue(q), condition initiale : la file d'attente q existe, résultat de l'opération : si q est vide, Team renvoie 1, sinon renvoie 0.
Pour plus de connaissances connexes, veuillez visiter le
Site Web PHP chinoisCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!