Estructura de Datos(Pilas)...Ejemplo
Definición: Primero en Entrar, ultimo en Salir aqui les dejo un ejemplo sencillo de Pilas y espero y les sirva de algo
//Clase
import java.*;
import javax.swing.*;
public class Pila {
int p[];
int tam;
int tope;
public Pila() { }
public Pila(int t) {
this.tam=t;
p=new int [tam];
}
public boolean Pila_Llena()
{
boolean ban=false;
if(tope==p.length-1)
{
ban=true;
}
return ban;
}
public boolean Pila_Vacia()
{
boolean ban=false;
if(tope==-1)
{
ban=true;
}
return ban;
}
public void llenar()
{
if(Pila_Vacia())
{
for(int i=0;i<p.length;i++)
{
p[i]=Integer.parseInt(JOptionPane.showInputDialog("Introduce dato"));
tope++;
}
}
else
{
for(int i=tope+1;i<p.length;i++)
{
p[i]=Integer.parseInt(JOptionPane.showInputDialog("Introduce dato"));
tope++;
}
}
}
public void Insertar()
{
int dato;
if(!Pila_Llena())
{
dato=Integer.parseInt(JOptionPane.showInputDialog("Introduce dato"));
p[tope]=dato;
}
else {
JOptionPane.showMessageDialog(null,"Pila llena");
}
}
public void Eliminar()
{
int dato;
if(!Pila_Vacia())
{
JOptionPane.showMessageDialog(null,"El elemento a eliminar es: "+p[tope]);
tope--;
}
else {
JOptionPane.showMessageDialog(null,"Pila Vacia");
}
}
public String toString()
{
String cad="Contenido\n";
for(int i=0;i<=tope;i++)
{
cad+=p[i]+", ";
}
return cad;
}
}
//Aplicacion
import javax.swing.*;
import java.*;
public class AppPila
{
public static void main (String[] args)
{
int tam=Integer.parseInt(JOptionPane.showInputDialog("tamaño"));
Pila p=new Pila(tam);
for(;;)
{
byte opc=Byte.parseByte(JOptionPane.showInputDialog("Menu\n1.Insertar dato\n2.Eliminar dato\n3.Llenar Pila\n4.Ver Pila\n5.Salir"));
switch(opc)
{
case 1:
p.Insertar();
break;
case 2:
p.Eliminar();
break;
case 3:
p.llenar();
break;
case 4:
JOptionPane.showMessageDialog(null,""+p.toString());
break;
case 5:
System.exit(5);
}
}
}
}