Java Generic Stack
import java.util.*; // Simple Java array-based stack template class. public class Stack<T> { private Vector<T> data; // Should be T[] data;, but Java forbids it. private int top_elt; // Create an empty stack of a given size. public Stack(int size) { data = new Vector<T>(size); data.setSize(size); top_elt = -1; } // Add an element to the stack. Note that you must send a pointer, // and the stack actually stores the pointer. public void push(T e) { data.set(++top_elt, e); } // Pop the stack and return the top item pointer. If the stack is // empty, return the null pointer. public T pop() { if(empty()) return null; else return data.get(top_elt--); } // Return the top item pointer. If none, return the null pointer. public T top() { if(empty()) return null; return data.get(top_elt); } // Tell if the stack is empty. public Boolean empty() { return top_elt == -1; } }