Defina uma pilha usando, para armazenamento interno, uma fila. Descreva como seriam implementadas as operações push, pop, isEmpty(para verificar se está vazia) e isFull(para verificar se está cheia).
Código em Java
//Autor: Thiago Campos
//Data: 25.10.2012
/**
*
* @author Thiago
*/
package br.thiago.dominio;
import javax.swing.JOptionPane;
public class Q3 {
//variaveeis globais
public static int k = 5;
public static int topo = -1;
public static Integer[] p1 = new Integer[k];
public static void push(int valor){ //insere elementos na pilha
if(topo < p1.length-1){ //(-1) é p/ ajustar a contagem pois inicia em -1
topo++;
p1[topo] = valor;
}
else
JOptionPane.showMessageDialog(null, "A pilha está cheia");
exibePilha(); //mostra a pilha após add de elemento
} //fim da função
public static void pop(){
if(topo >= 0){
p1[topo] = null;
topo--;
}
exibePilha(); //exibe os elementos da pilha após exclusão de elemento
} //fim da função
public static void exibePilha(){ //exibe os elementos da pilha
String str = "";
for (int i = 0; i < p1.length; i++) {
if(p1[i] != null)
str += p1[i];
}
JOptionPane.showMessageDialog(null, "Pilha: " + str);
} //fim do função
public static boolean isEmpty(){ //verifica se a pilha está vazia
if(topo != -1)
return false;
else
return true;
} //fim da função
public static boolean isFull(){ //verifica se a pilha está cheia
if(topo == p1.length - 1)
return true;
else
return false;
} //fim da função
/*
* INICIO DO MAIN ================================================================
*/
public static void main(String args[]) {
//variaveis
int p;
int m;
do {
m = Integer.parseInt(JOptionPane.showInputDialog("Informe a opção desejada:"
+ "\n1 - Insira um elemento na pilha"
+ "\n2 - remova um elemento da pilha"
+ "\n3 - Exiba os elementos da pilha"
+ "\n4 - Sair"));
switch (m) {
case 1:
//inserir elementos na pilha
if (!isFull()) {
p = Integer.parseInt(JOptionPane.showInputDialog("Informe um inteiro para a pilha:"));
push(p);
} else
JOptionPane.showMessageDialog(null, "A pilha está cheia!");
break;
case 2:
if (!isEmpty()) {
pop();
} else
JOptionPane.showMessageDialog(null, "A pilha está vazia!");
break;
case 3:
exibePilha();
break;
case 4:
JOptionPane.showMessageDialog(null, "Fechando o programa...");
break;
default:
JOptionPane.showMessageDialog(null, "Opção inválida!");
break;
} //fim do switch
} while (m != 4);
} //fim do main
} //fim da classe
Muito bom !!!
ResponderExcluirValeu! Dê uma olhada também na minha última postagem sobre lista... principalmente nos métodos, cairão na prova.
ExcluirOi Tiago, estou estudando programação, mais amigo to apanhando,,,,
ResponderExcluir