//stack implemented using lists class StackAsListAlt implements SeqStructure{ private class ListNode { public Object item; public ListNode next; public ListNode(Object o, ListNode n) { item = o; next = n; } public String toString() { String temp = item.toString(); if (next != null) temp += " " + next.toString(); return temp; } } private ListNode list; public StackAsListAlt() { } public void put(Object o) { list = new ListNode(o,list); } public Object get() { if (! isEmpty()){ Object v = list.item; list = list.next; return v; } else { System.out.println("Empty!"); return null; } } public boolean isEmpty() { return (list == null); } public int size() { int v = 0; ListNode finger = list; while (finger != null) { v++; finger = finger.next; } return v; } public String toString() { if (isEmpty()) return "Empty Stack"; return "Stack elements from top to bottom:" + list; } } public class TestStackAsListAlt { public static void main(String[] args) { StackAsList s = new StackAsList(); s.put("Billy"); s.put("Silly"); System.out.println(s); System.out.println(s.get()); System.out.println(s.get()); } }