rokevin
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
  • 双向循环链表

  • 4. 双向循环链表(Circular Doubly Linked List)

双向循环链表

双向循环链表 (CircularDoubly Linked List)

4. 双向循环链表(Circular Doubly Linked List)

  • 定义:双链表的变种,头节点的 prev 指向尾节点,尾节点的 next 指向头节点。

  • 性质:

    • 同时支持双向遍历和循环访问。
    • 实现复杂,但操作灵活(如删除任意节点只需 (O(1)))。
  • Java 实现:

    class CDNode {
        int data;
        CDNode prev, next;
        
        CDNode(int data) {
            this.data = data;
            this.prev = null;
            this.next = null;
        }
    }
    
    class CircularDoublyLinkedList {
        private CDNode head;
        
        // 在头部插入
        public void insertAtBeginning(int data) {
            CDNode newNode = new CDNode(data);
            
            if (head == null) {
                newNode.next = newNode;
                newNode.prev = newNode;
                head = newNode;
                return;
            }
            
            CDNode last = head.prev;
            
            newNode.next = head;
            head.prev = newNode;
            newNode.prev = last;
            last.next = newNode;
            
            head = newNode;
        }
    }
    
最近更新:: 2025/10/27 23:01
Contributors: luokaiwen