package datastructs; public class Stack { private StackNode currentNode; public Stack() { currentNode = null; } public void push(T value){ StackNode newNode = new StackNode(value, currentNode); currentNode = newNode; } public T pop(){ T temp = currentNode.getValue(); delete(); return temp; } public void delete(){ currentNode = currentNode.getNext(); } public int size(){ int size = 0; StackNode sizeNode = currentNode; while(sizeNode.getNext() != null){ size++; sizeNode = sizeNode.getNext(); } size++; return size; } public void print(){ StringBuilder sb = new StringBuilder(); StackNode printNode = currentNode; while(printNode.getNext() != null){ sb.append(printNode.getValue()); sb.append("\n"); printNode = printNode.getNext(); } sb.append(printNode.getValue()); System.out.println(sb.toString()); } }