public class Node { public Object data; public Node next; public Node(){} public Node(Object data,Node next){ this.data = data; this.next = next; } }
public class CirSingleLink { private Node node = null; private int size = 0; public void init(){ node = new Node(); node.data = null; //头结点指向头结点 node.next = node; } //从尾结点进行插入 public void add(Object i){ Node newNode = new Node(i,node); if(node.next == node){ node.next = newNode; }else{ Node tmp = node; while (tmp.next != node){ tmp =tmp.next; } tmp.next = newNode; } size ++; } public void delete(Object i){ Node tmp = node; while(tmp.next != node && tmp.next.data != i){ tmp = tmp.next; } tmp.next = tmp.next.next; } public void display(){ Node tmp = node.next; System.out.println("链表的长度为:" + size); while (tmp.next != node){ System.out.println("打印结点信息:" + tmp.data); tmp = tmp.next; } System.out.println("打印结点信息:" + tmp.data); } }
public class Demo { public static void main(String[] args){ CirSingleLink csl = new CirSingleLink(); csl.init(); csl.add(1); csl.add(2); csl.add(3); csl.display(); System.out.println("删除之后的结点信息"); // csl.delete(2); csl.delete(3); // csl.delete(1); csl.display(); } }