/** * Created by 瑛琪<a href="http://xiongyingqi.com">xiongyingqi.com</a> on 2014/10/17 0017. */ public class LinkList<T> { class Entry { /** * 当前节点的数据 */ T data; /** * 下一个节点 */ Entry next; } private Entry header;// 头部标志 private Entry current;// 当前元素 private int size; private int index; LinkList() { Entry entry = new Entry(); header = entry; current = entry; current.next = entry; size = 0; index = -1; } /** * 插入到列表最后一个元素后 * * @param t */ public void add(T t) { Entry entry = new Entry(); current.next = entry; entry.data = t; entry.next = header; current = entry; size++; index++; } /** * 插入到第一个元素 * @param t */ public void addAfterHeader(T t) { Entry entry = new Entry(); entry.next = header.next; header.next = entry; entry.data = t; current = entry; } /** * 答应当前元素 */ public void print() { Entry next = header.next; while (next != header) { System.out.print("->" + next.data); next = next.next; } System.out.println(); } public static void main(String[] args) { LinkList<Integer> list = new LinkList<Integer>(); for (int i = 0; i < 100; i++) { list.add(i); } list.print(); LinkList<Integer> list2= new LinkList<Integer>(); for (int i = 0; i < 100; i++) { list2.addAfterHeader(i); } list2.print(); } }