Crear una pila en Java

Hola a todos, he aquí un programa que crea una pila, y hace algunas operaciones básicas sobre ella.

/*
Antes que nada, una breve explicación:

Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.

Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el último elemento apilado.

En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, Top of Stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.

Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.

Las pilas suelen emplearse en los siguientes contextos:

* Evaluación de expresiones en notación postfija (notación polaca inversa).
* Reconocedores sintácticos de lenguajes independientes del contexto
* Implementación de recursividad.

Operaciones

Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.

* Crear: se crea la pila vacía.
* Apilar: se añade un elemento a la pila.(push)
* Desapilar: se elimina el elemento frontal de la pila.(pop)
* Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
* Vacía: devuelve cierto si la pila está vacía o falso en caso contrario.

*/

Espero les sea de utilidad.
El programa es 100% funcional (Al menos que vean algún error ;) )
Consta de dos clases: Principal y Pilando, acá les dejo el código...

Clase: Pilando

import java.util.*;

public class Pilando {
       
        /*CREANDO LA PILA*/
Stack pila = new Stack();

/*INGRESANDO ELEMENTOS A LA PILA  En este caso se agregaran los numeros 1, 2 y 3*/
public void ingresar()
{
      for (int x=1;x<=3;x++)
      {
      pila.push(Integer.toString(x));
      }
}

        /*VACIA LA PILA, EN CASO DE ENCONTRARSE VACIA, MUESTRA EL MENSAJE "La pila esta vacía!!!"*/
public void sacar()
{
      while (this.empty() == 1)
      {
      System.out.println("Sacando el elemento "+pila.pop());
      }
      System.out.println("La pila esta vacía!!!");
}

/*
* MUESTRA EL PRIMER ELEMENTO QUE FUE AGREGADO A LA PILA
* */
public void show1()
{
System.out.println("El primer elemento agregado es ---> "+pila.firstElement().toString());
}

/*
* MUESTRA EL ULTIMO ELEMENTO QUE FUE AGREGADO A LA PILA
* */
public void show2()
{
/*
* MUESTRA EL ULTIMO ELEMENTO QUE FUE AGREGADO A LA PILA
* */
System.out.println("El ultimo elemento agregado es ---> "+pila.lastElement().toString());
}

/*
* MUESTRA EL TAMAÑO DE LA PILA -LA CANTIDAD DE ELEMENTOS DE LA PILA-
* */
public void show3()
{
System.out.println("La cantidad de elementos es de ---> "+pila.size());
}

/*
*  DE VUELVE 0 SI LA PILA ESTA VACIA
* */
public int empty()
{
int valid = 1;
if(!pila.empty())
{
valid = 1;
}
else
if(pila.empty())
{
valid = 0;
}
return valid;
}
}

Clase: Principal

public class Principal {
public static void main(String args[])
{
                /*SE CREA Y SE INSTANCIA EL OBJETO DEL TIPO DE LA CLASE: Pilando*/
Pilando objPilando = new Pilando();

                /*SE LLAMAN A LOS MÉTODOS DE LA CLASE: Pilando*/
objPilando.ingresar();

objPilando.show1();
objPilando.show2();
objPilando.show3();

objPilando.sacar();
}
}

La salida en consola, de esta aplicación sería así:

El primer elemento agregado es ---> 1
El ultimo elemento agregado es ---> 3
La cantidad de elementos es de ---> 3
Sacando el elemento 3
Sacando el elemento 2
Sacando el elemento 1
La pila esta vacía!!!

No es la gran cosa, pero espero le pueda servir de algo a alguien. La explicación fue sacada de wikipedia soy un poco malo explicando, para mayor información les dejo el link de wikipedia sobre el tema; http://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)
Saludos!

Aportado por : mandrake0219
Fecha aporte: 31/10/2009