package xqfGit.dataStructure; public class LinkedList implements List { private Node first; private Node last; private int size; public void add(Object o){ Node l = new Node(o); l = last.next; size++; } public void add(int index , Object o){ Node l = new Node(o); Node n = first; if(size == index){ l = last.next; l = last; size++; }else{ Node m = first; for(int i =0;i<index-1;i++){ m = m.next; } for(int i =0;i<index;i++){ n = n.next; } l = m.next; n = l.next; size++; } } public Object get(int index){ Node n = first; for(int i =0;i<index;i++){ n = n.next; } return n; } public Object remove(int index){ Node n = first; for(int i =0;i<index-1;i++){ n = n.next; } Node m = first; for(int i =0;i<index;i++){ m = m.next; } Node l = first; for(int i =0;i<index+1;i++){ l = l.next; } l = n.next; size--; return m; } public int size(){ Node n = first; int i=0; for(i =0;i<size;i++){ n = n.next; } return i; } public void addFirst(Object o){ Node n = new Node(o); first = n.next; size++; } public void addLast(Object o){ Node n = first; for(int i =0;i<size;i++){ n = n.next; } n = new Node(o); last = n; size++; } public Object removeFirst(){ Node n = first.next; Node m = first; first = n; size--; return m; } public Object removeLast(){ Node n = first; for(int i =0;i<size-1;i++){ n = n.next; } last = n; size--; return n.next; } public Iterator iterator(){ return null; } private static class Node{ Object data; Node next; public Node(){ } public Node(Object o ){ this.data = o; } } }