/** * Pilha: implementação básica de pilha (stack) de String *@author Gustavo Sverzut Barbieri ; Ives Prates Telles Alves */ import java.util.LinkedList; import java.util.NoSuchElementException; public class Pilha { /** * Atributos */ private LinkedList lista; /** * Pilha: cria pilha */ public Pilha() { lista = new LinkedList(); } /** * Pilha: cria pilha já fornecendo o 1o elemento *@param texto o texto a ser adiciondo à pilha */ public Pilha(String texto) { lista = new LinkedList(); this.push(texto); } /** * pop: retira elemento do topo da pilha e retorna *@throw NoSuchElementException java.util.NoSuchElementException a lista estava vazia */ public String pop() throws NoSuchElementException { return (String) lista.removeLast(); } /** * push: coloca elemento na pilha *@param texto o texto a ser colocado na pilha */ public void push(String texto) { lista.addLast(texto); } /** * empty: retorna true ou false caso a pilha esteja vazia ou não *@return true=pilha vazia, false=pilha cheia */ public boolean empty() { return (lista.size()==0) ? true : false; } /** * main: só para testar se tudo está ok */ public static void main(String argv[]) { Pilha pilha = new Pilha(); int i=argv.length; // Confere se foi passado argumentos if (i==0) { System.out.println("Especifique as palavras a serem usadas na pilha na linha de comando\n"); return; } // Mostra as palavras lidas que serão adicionadas à lista System.out.print("Lido: "); for (; i > 0; i--) { System.out.print(argv[i-1]+" "); pilha.push(argv[i-1]); } System.out.print("\n"); // Mostra as palavras retiradas da lista System.out.print("Tirando da pilha: "); while (!pilha.empty()) { System.out.print(pilha.pop()+" "); } System.out.print("\n"); } }