package lessones01; public class Stack<T>{ Node<T> first; Node<T> lastest; private int size; public Stack(){ first = lastest = new Node<T>(null); size = 0; } public int size(){ return size; } public Stack<T> push(T arg_value){ if(size == 0){ lastest.value = arg_value; }else{ lastest.setRight(new Node<T>(arg_value)); lastest = lastest.right; } size++; return this; } public T pop(){ if(size > 0){size--;}; if(size == 0){ T temp; temp = lastest.value; lastest.value = null; return temp; }else{ lastest = lastest.left; return lastest.right.remove().value; } } public T peek(){ return lastest.value; } public boolean empty(){ return size == 0; } }