package lessones01; public class Queue<T>{ Node<T> first; Node<T> lastest; private int size; public Queue(){ first = lastest = new Node<T>(null); size = 0; } public int size(){ return size; } public Queue<T> push_back(T arg_value){ if(size == 0){ first.value = arg_value; }else{ lastest.setRight(new Node<T>(arg_value)); lastest = lastest.right; } size++; return this; } public T pop_front(){ if(size > 0){size--;}; if(size == 0){ T temp; temp = first.value; first.value = null; return temp; }else{ first = first.right; return first.left.remove().value; } } public T front(){ return first.value; } public T back(){ return lastest.value; } }