//LINKED LIST IMPLEMENTATION (MUCH SIMPLIFIED) OF A STACK public class comp410Stack > //See Figs 1.10 and 1.17, and read Sec 1.5.5 of your text to understand this. { private class Node{//each individual node public T data; public Node next; public Node(T d, Node n){ data = d; next = n;} } private Node topOfStack; private int size; public comp410Stack(){//constructor topOfStack = null; size = 0; } public void push(T d){ Node tmpNode = new Node(d, topOfStack); topOfStack = tmpNode; size = size+1; } public void pop(){ if (size>0){ topOfStack = topOfStack.next; size = size + 1; } } public T top(){//PRECOND: Not empty return topOfStack.data; } public T min(){//PRECOND: Not Empty T minVal = topOfStack.data; for(Node tmpNode = topOfStack.next; tmpNode != null; tmpNode = tmpNode.next) if (minVal.compareTo(tmpNode.data)>0) minVal = tmpNode.data; return minVal; } public void disp(){ for(Node tmpNode = topOfStack; tmpNode != null; tmpNode = tmpNode.next) System.out.print(tmpNode.data + ", "); System.out.println(); } }