Pergunta: Como usar duas pilhas para implementar uma fila, ou seja, dois métodos para implementar uma fila-appendTail (inserção) e um deleteHead (exclusão).
Análise: A ideia central é que uma pilha armazene para frente e a outra armazene para trás. A pilha de armazenamento direta é usada para inserção e a pilha de armazenamento reversa é usada para exclusão.
O código Java implementado é o seguinte:
Copie o código do código da seguinte forma:
importar java.util.Stack;
classe pública QueneWithTwoStacks<E> {
pilha privada <E> pilha1;
pilha privada <E> pilha2;
public void anexarTail(E e) {
pilha1.push(e);
}
public E deleteHead() lança exceção {
if (stack2.size() <= 0) {
enquanto (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
if (stack2.size() == 0) {
throw new Exception("A fila está vazia!");
}
retornar stack2.pop();
}
}