/** * 循环链表 */ public class CycleLinkedList { private static final String TAG = "CycleChain"; private int size = 0; private LinkedNode head = null;//头结点,相当于一个标签而已,不是链表众多节点的一部分 private LinkedNode cur = null;//记录插入之前时候的head的位置 class LinkedNode { Object value; LinkedNode next = null; LinkedNode(Object obj) { this.value = obj; } } public boolean isEmpty() { return size == 0; } public int getSize() { return size; } public void insertHead(Object obj) { LinkedNode node = new LinkedNode(obj); if (head == null) { node.next = head; head = node; cur = head; head.next = head; } else { while (head.next != cur) { head = head.next; } head.next = node; head = node; head.next = cur; cur = head; } size++; } public void deleteHead() throws Exception { if (head == null) throw new Exception("空链表!"); while (head.next != cur) { head = head.next; } cur = cur.next; head.next = cur; head = cur; } public void display() throws Exception { if (head == null) throw new Exception("空链表!"); LinkedNode cur = head; int i = 0; while (cur != null && i < getSize() * 4) { System.out.print(cur.value.toString() + "->"); cur = cur.next; i++; } System.out.println(""); } public static void main(String[] args) throws Exception { CycleLinkedList cc = new CycleLinkedList(); cc.insertHead("哈哈"); cc.insertHead("ds"); cc.insertHead("123123你好"); cc.insertHead("ggt"); cc.display(); System.out.println("---"); cc.deleteHead(); cc.deleteHead(); cc.insertHead("test!"); cc.display(); System.out.println("---"); System.out.println(cc.getSize()); } }

相关文章:

  • 2022-03-04
  • 2022-12-23
  • 2021-07-29
  • 2021-09-05
  • 2021-09-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2021-04-25
相关资源
相似解决方案