package estructuras; /** *
Title: Clase pila
*Description: Permite introducir datos en una lista ligada simulando * una pila de datos
*Copyright: Copyright (c) 2006
*Company: UMSNH
* @author Alumnos de curso de estructuras de datos * @version 1.0 */ public class Stack { celda top; /** * Contructo de una pila vacia */ public Stack() { top = null; } /** * Prueba si la pila esta vacia * @return boolean */ public boolean isEmpty() { return (top == null); } /** * Limpia la pila */ public void clear() { top = null; } /** * Saca un objeto de la pila * @return Object */ public Object pop() { if (isEmpty()) { return null; } else { celda aux; aux = top; top = top.siguiente; return aux.elemento[0]; } } /** * Coloca el objeto x en la pila de datos * @param x Object */ public void push(Object x) { Object O[] = new Object[1]; O[0] = x; celda celdaNueva = new celda(O); celdaNueva.siguiente = top; top = celdaNueva; } /** * Imprime el contenido de la pila en pantalla */ public void imprime() { celda i; int m = top.elemento.length, j; System.out.print("["); for (i = top; i != null; i = i.siguiente) { System.out.print("("); for (j = 0; j < m; j++) System.out.print(i.elemento[j] + ","); System.out.print(") "); } System.out.println("]"); } /** * Regresa el valor en lo mas alto de la pila * @return Object */ public Object ValorTope() { return (top.elemento[0]); } static public void main(String args[]) { Stack p = new Stack(); p.push(1); p.push(2); p.push(3); p.imprime(); System.out.println("salio " +p.pop()); p.imprime(); } }