(File d' attente avec deux piles) Titre Description:
Deux piles pour réaliser une file d'attente, la file d'attente d'achèvement poussée et opérations Pop. les éléments de file d'attente int.
Pour la structure de données de la pile, lequel élément est avancé hors du poste, tels que les données d'entrée {a, b, c}, une telle ligne de données pour réaliser l'utilisation souhaitée de deux piles, la forme finale de la file d'attente, ont ensuite FIFO tandis que dans la pile, le premier à entrer dans une position dans le fond de la pile, alors laissez-le se rendre compte de la file d'attente il y a opération pop ont alors de faire un premier arrivé, donc avant cette première d'une opération de poussée de la pile est effectuée, puisqu'un au fond, il est nécessaire de b, c sont pop, pop des données pour pousser stack2 l'intérieur, de sorte que l'enfant est en stack2 {c, b}, à ce moment une file d'attente pop des éléments, doivent maintenant être vont à l'origine dans, b, et c, donc directement des éléments stack2 pop sur la ligne. Conclusions peuvent être résumées comme suit:
(1) lorsqu'il est inséré directement dans stack1.
(2) lorsque l'éjection, lorsque stack2 pas vide, le stack2 pop élément supérieur, si stack2 est vide, le nombre total de la pile un par un dans stack1 stack2 pile, puis pop l'élément de haut stack2.
Réalisation: l'opération Push sera tous les éléments sont d' abord pressés dans l' intérieur stack1, opération pop est d'abord déterminer s'il y a un élément qui stack2, si le premier pop-up, alors vous n'avez pas tous les éléments à l' intérieur du stack1 apparaît enfoncé à nouveau dans stack2.
importation java.util.Stack; public class Solution { Stack <Entier> stack1 = new Stack <Entier> (); Stack <Entier> stack2 = new Stack <Entier> (); poussoir public void (noeud int) { de stack1.push (noeud); } Pop public int () { if (stack2.size () <= 0) { while (stack1.size ()! = 0) { stack2.push (stack1.pop ()); } } Stack2.pop de retour (); } }