Stack.java
public class Stack<Item>{
private Node tail = null;
private int counts;
private class Node{
public Node last = null;
public Item value;
}
public Stack(){};
public void push(Item item)
{
Node top = new Node();
top.last = tail;
top.value = item;
tail = top;
++counts;
}
public boolean isEmpty()
{
return counts == 0;
}
public Item pop()
{
if (isEmpty())
throw new RuntimeException("pop error");
Item ret = tail.value;
tail = tail.last;
tail = null;
--counts;
return ret;
}
public int size()
{
return counts;
}
}
main.java
import edu.princeton.cs.algs4.*;
public class Main {
public static void main(String[] args)
{
Stack<String> a = new Stack<String>();
String b = "4444";
a.push(b);
StdOut.print(a.pop());
}
}