/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sdsimulator.runnable.expresiones;
import java.util.Vector;

/**
 *
 * @author Miguel Herreros
 */
public class Pila{
    private Vector contenido;
    //..........................................................................
    public Pila(){
        contenido=new Vector();
    }
    //..........................................................................
    public void push(Object o){
        contenido.add(o);
    }
    //..........................................................................
    public Object pop(){
        int indiceCima=contenido.size() - 1;
        if (indiceCima<0)
            return null;
        Object retorno=contenido.get(indiceCima);
        contenido.remove(indiceCima);
        return retorno;
    }
    //..........................................................................
    /**
     * Devuelve el objeto que se encuentra en la cima de la pila. Si la pila está
     * vacía, devuelve null.
     * @return
     */
    public Object top(){
        int indiceCima=contenido.size() - 1;
        
        if (indiceCima == -1)
            return null;
        else
            return contenido.get(indiceCima);
    }
    //..........................................................................
    /**
     * Devuelve true si la pila está vacía.
     * @return
     */
    public boolean vacia(){
        return (contenido.isEmpty());
    }
}
