Pile et file d'attente à Java

Pile et file d'attente à Java
Cet article explique la pile et la file d'attente en Java, en commençant par la classe de pile. La pile est LIFO et la file d'attente est FIFO - voir les détails ci-dessous.

Empiler

Introduction de la pile

Imaginez une pile de plaques sur une table. Après que le premier a été mis sur la table, le suivant a été mis sur le premier; Le troisième a été mis en deuxième position; et ainsi de suite, jusqu'à ce qu'un nombre satisfaisant soit atteint. Pour retirer les plaques de la table, un par un, la dernière mise sur le dessus est supprimée en premier; Ensuite, le dernier mais un est supprimé ensuite; Ensuite, celui à côté du haut retiré; et ainsi de suite. Ainsi, la dernière plaque à mettre sur la pile est celle à retirer en premier. En ce sens, toutes les plaques sont supprimées dans un ordre du dernier in_first-out. Last-in_First-Out Order est abrégé, LIFO.

Une pile en Java est une structure de données LIFO. Une telle structure garde les objets du même type. L'élément du premier index, est l'élément en haut. Une pile doit avoir au moins les trois méthodes suivantes:

pousser: Cela ajoute un nouvel élément au-dessus de la pile.

populaire: Cela supprime l'élément qui est en haut de la pile.

coup d'œil: Cela lit, sans retirer, l'élément en haut.

En Java, la classe de pile est dans le java.user.* package, qui doit être importé.

En Java, la pile a un constructeur et cinq méthodes, qui sont toutes expliquées ci-dessous:

Construction de la pile Java

La syntaxe pour le constructeur d'une pile vide est:

Public Stack ()

L'instruction suivante construit une pile vide appelée ST:

Empiler st = nouvelle pile();

Méthodes de pile Java

public e push (e item)

Cela ajoute un élément sur le haut de la pile. Illustration:

Empiler st = nouvelle pile();
St.push ('a'); St.push ('b'); St.push ('c'); St.push ('d'); St.push ('e');

public e pop ()

Cela supprime l'article en haut de la pile et le renvoie. Illustration:

Empiler st = nouvelle pile();
St.push ('a'); St.push ('b'); St.push ('c'); St.push ('d'); St.push ('e');
char ch1 = st.populaire(); char ch2 = st.populaire(); char ch3 = st.populaire();
char ch4 = st.populaire(); char ch5 = st.populaire();
Système.dehors.Imprimer (CH1); Système.dehors.imprimer ("); système.dehors.imprimer (CH2);
Système.dehors.imprimer ("); système.dehors.imprimer (CH3); Système.dehors.imprimer(");
Système.dehors.Imprimer (CH4); Système.dehors.imprimer ("); système.dehors.imprimer (CH5);
Système.dehors.println ();

La sortie est:

E d c b a

avec des éléments retirés dans l'ordre inverse dans lequel ils ont été poussés.

public e peek ()

Cela copie sans retirer l'article en haut de la pile et le renvoie. Illustration:

Empiler st = nouvelle pile();
St.push ('a'); St.push ('b'); St.push ('c'); St.push ('d'); St.push ('e');
char ch1 = st.peek (); char ch2 = st.peek (); char ch3 = st.peek ();
char ch4 = st.peek (); char ch5 = st.peek ();
Système.dehors.Imprimer (CH1); Système.dehors.imprimer ("); système.dehors.imprimer (CH2);
Système.dehors.imprimer ("); système.dehors.imprimer (CH3); Système.dehors.imprimer(");
Système.dehors.Imprimer (CH4); Système.dehors.imprimer ("); système.dehors.imprimer (CH5);
Système.dehors.println ();

La sortie est:

E e e e e

ce qui indique également que l'élément supérieur est copié et non supprimé par peek ().

public booléen vide ()

Cela renvoie vrai si la pile est vide, et fausse sinon. Illustration:

Empiler st = nouvelle pile();
St.push ('a'); St.push ('b'); St.push ('c'); St.push ('d'); St.push ('e');
booléen bl = st.vide();
Système.dehors.println (BL);

La sortie est fausse car la pile, ST n'est pas vide.

Recherche publique (objet O)

Cela renvoie l'index de l'objet recherché. Si l'objet n'est pas trouvé, -1 est retourné. Illustration:

Empiler st = nouvelle pile();
St.push ('a'); St.push ('b'); St.push ('c'); St.push ('d'); St.push ('e');
int it1 = st.search ('a'); int it2 = st.search ('b'); int it3 = st.search ('c');
int it4 = st.search ('d'); int it5 = st.search ('e'); int it6 = st.search ('f');
Système.dehors.imprimer (it1); Système.dehors.imprimer ("); système.dehors.imprimer (it2);
Système.dehors.imprimer ("); système.dehors.imprimer (it3); Système.dehors.imprimer(");
Système.dehors.imprimer (it4); Système.dehors.imprimer ("); système.dehors.imprimer (it5);
Système.dehors.imprimer ("); système.dehors.imprimer (it6); Système.dehors.imprimer(");
Système.dehors.println ();

La sortie est:

5 4 3 2 1 -1

Conclusion de pile

La pile en Java est une structure de données dernier in_first-out-out. Il a cinq méthodes qui incluent Push (), Pop () et Peek ().

File d'attente

File d'attente Introduction

Imaginez une file d'attente de personnes en ligne, en attendant un produit ou un service. La première personne qui est venue est la première à être servie. La deuxième personne est la seconde à être servie. Le troisième est le troisième à être servi, et ainsi de suite; Jusqu'à ce que la file d'attente se termine. Ceci est un schéma de premier in_first-out, abrégé FIFO.

Une file d'attente à Java est une structure de données FIFO. Une telle structure garde les objets du même type. L'élément au premier index est l'élément en haut. Une file d'attente devrait avoir au moins les trois méthodes suivantes:

ENQUEUe: Cela ajoute un nouvel élément à l'arrière de la file d'attente.

Dequeue: Cela supprime l'élément à l'avant de la file d'attente.

coup d'œil: Cela lit, sans retirer, le premier élément.

En Java, la file d'attente n'a pas de constructeur et six méthodes, dont trois sont expliquées ci-dessous:

Implémentation / instanciation de la file d'attente Java

La file d'attente en Java est une interface. Java Stack Class instancie un objet de pile tandis que l'interface de file d'attente Java implémente une classe. Un objet doit encore être instancié de la classe. Heureusement, Java a déjà implémenté de nombreuses classes à partir de l'interface de file d'attente. Le programmeur doit choisir celui le plus approprié parmi le lot. Celui choisi pour cet article est LinkedList. LinkedList a deux constructeurs, mais un seul sera expliqué ci-dessous. La classe LinkedList a de nombreuses méthodes, mais seulement trois seront expliquées ci-dessous.

En Java, la classe LinkedList est dans le Java.user.* Package qui doit être importé.

Une syntaxe pour construire une file d'attente à partir de la classe LinkedList, est:

Public LinkedList ()

L'instruction suivante construit une file d'attente vide appelée, qu:

Listin lié qu = nouvelle liste liée();
Quelques méthodes de file d'attente LinkedList
Public Boolean Add (E E)

Cela ajoute un élément à l'arrière de la file d'attente. Illustration:

Listin lié qu = nouvelle liste liée();
qu.ajouter un'); qu.ajouter ('b'); qu.ajouter ('c'); qu.ajouter ('d'); qu.ajouter ('e');
public e supaire ()

Cela supprime l'article devant la file d'attente et le renvoie. Illustration:

Listin lié qu = nouvelle liste liée();
qu.ajouter un'); qu.ajouter ('b'); qu.ajouter ('c'); qu.ajouter ('d'); qu.ajouter ('e');
char ch1 = qu.retirer(); char ch2 = qu.retirer(); char ch3 = qu.retirer();
char ch4 = qu.retirer(); char ch5 = qu.retirer();
Système.dehors.Imprimer (CH1); Système.dehors.imprimer ("); système.dehors.imprimer (CH2);
Système.dehors.imprimer ("); système.dehors.imprimer (CH3); Système.dehors.imprimer(");
Système.dehors.Imprimer (CH4); Système.dehors.imprimer ("); système.dehors.imprimer (CH5);
Système.dehors.println ();

La sortie est:

A b c d e

confirmant qu'il s'agit d'une structure de données FIFO.

public e peek ()

Cela copie sans retirer l'article à l'avant de la file d'attente et le renvoie. Illustration:

Listin lié qu = nouvelle liste liée();
qu.ajouter un'); qu.ajouter ('b'); qu.ajouter ('c'); qu.ajouter ('d'); qu.ajouter ('e');
char ch1 = qu.peek (); char ch2 = qu.peek (); char ch3 = qu.peek ();
char ch4 = qu.peek (); char ch5 = qu.peek ();
Système.dehors.Imprimer (CH1); Système.dehors.imprimer ("); système.dehors.imprimer (CH2);
Système.dehors.imprimer ("); système.dehors.imprimer (CH3); Système.dehors.imprimer(");
Système.dehors.Imprimer (CH4); Système.dehors.imprimer ("); système.dehors.imprimer (CH5);
Système.dehors.println ();

La sortie est:

A a a a

ce qui indique également que l'élément avant est copié et non supprimé par Peek ().

Conclusion de file d'attente

La file d'attente en Java est une structure de données premier-in_first-out. Il a de nombreuses méthodes qui incluent Add (), Retire () et Powek ().

Conclusion générale

La pile et la file d'attente sont des structures de données. La pile en Java est une structure de données dernier in_first-out-out. Il a cinq méthodes qui incluent Push (), Pop () et Peek (). La file d'attente en Java est une structure de données premier-in_first-out. Il a de nombreuses méthodes qui incluent Add (), Retire () et Powek ().