Maison >Java >Javacommencer >La différence entre la pile et la file d'attente en Java

La différence entre la pile et la file d'attente en Java

(*-*)浩
(*-*)浩original
2019-11-14 10:55:033138parcourir

La différence entre la pile et la file d'attente en Java

Stack :

Stack (stack), également connu sous le nom de stack, est une table linéaire aux opérations limitées. La restriction est que les opérations d'insertion et de suppression ne sont autorisées qu'à une extrémité du tableau. Cette extrémité est appelée le haut de la pile et l’autre extrémité est appelée le bas. (Apprentissage recommandé : cours java)

La pile est créée par le système d'exploitation lorsqu'il crée un processus ou un thread (thread dans un système d'exploitation prenant en charge le multi-threading) pour ce thread. la zone de stockage a des caractéristiques FIFO et la taille de pile requise peut être spécifiée lors de la compilation.

File d'attente

La file d'attente est une table linéaire spéciale. La particularité est qu'elle autorise uniquement les opérations de suppression au niveau du front end (front end) de la table. (arrière) effectue des opérations d'insertion Comme la pile, la file d'attente est une liste linéaire avec des opérations restreintes. L'extrémité qui effectue l'opération d'insertion est appelée la queue de la file d'attente, et l'extrémité 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.

Pour établir une structure de file d'attente séquentielle, vous devez allouer statiquement ou demander dynamiquement un espace de stockage continu et définir deux pointeurs pour la gestion. L'un est le pointeur de tête avant, qui pointe vers l'élément de tête ; l'autre est le pointeur de queue arrière, qui pointe vers l'emplacement de stockage de l'élément suivant ajouté à la file d'attente.

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 pas de problèmes de débordement. Étant donné que la liste chaînée est indirectement formée par la structure, elle est également pratique à parcourir. (Premier entré, premier sorti)

Différence :

La pile est un seau, ce qui est mis en dernier est retiré en premier, et ce qui est en dessous il faut l'attendre. Vous ne pouvez sortir qu'après être sorti. (Dernier entré, premier sorti)

La file d'attente ne peut effectuer que des opérations de suppression en tête de file d'attente et des opérations d'insertion à la fin de la file d'attente, tandis que les piles ne peuvent effectuer que des opérations d'insertion et de suppression. en haut de la pile. (Premier entré, premier sorti)

Ce 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn