/*********** Nós ************/ public class pOneChildNode{ protected Object data; protected pOneChildNode next; public pOneChildNode(){ next = null; data = null; } public pOneChildNode(Object d,pOneChildNode n){ data = d; next = n; } public void setNext(pOneChildNode n){ next = n; } public void setData(Object d){ data = d; } public pOneChildNode getNext(){ return next; } public Object getData(){ return data; } public String toString(){ return ""+data; } } /*************** LISTAS ****************/ public class pLinkedList{ protected pOneChildNode head; protected int number; public pLinkedList(){ head = null; number = 0; } public boolean isEmpty(){ return head == null; } public int size(){ return number; } public void insert(Object obj){ head = new pOneChildNode(obj,head); number++; } public Object remove(){ if(isEmpty()) return null; pOneChildNode tmp = head; head = tmp.getNext(); number--; return tmp.getData(); } public void insertEnd(Object obj){ if(isEmpty()) insert(obj); else{ pOneChildNode t = head; while(t.getNext() != null) t=t.getNext(); pOneChildNode tmp = new pOneChildNode(obj,t.getNext()); t.setNext(tmp); number++; } } public Object removeEnd(){ if(isEmpty()) return null; if(head.getNext() == null) return remove(); pOneChildNode t = head; while(t.getNext().getNext() != null) t = t.getNext(); Object obj = t.getNext().getData(); t.setNext(t.getNext().getNext()); number--; return obj; } public Object peek(int n){ pOneChildNode t = head; for(int i = 0;i