Java数据结构 - 双向循环链表

Posted Qi-BJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数据结构 - 双向循环链表相关的知识,希望对你有一定的参考价值。

class DoubleLoopNode {
    // 上一个节点
    DoubleLoopNode pre;
    // 下一个节点
    DoubleLoopNode next;
    // 节点的内容
    int data;

    public DoubleLoopNode(int value) {
        this.pre = this;
        this.next = this;
        this.data = value;
    }

    // 插入节点
    public void append(DoubleLoopNode node) {
        // 原来的下一个节点
        DoubleLoopNode nextNode = this.next;
        // 把新节点作为当前节点的下一个节点
        this.next = node;
        // 把当前节点作为新节点的前一个节点
        node.pre = this;
        // 让原来的下一个节点作为新节点的下一个节点
        node.next = nextNode;
        // 让原来的下一个节点的上一个节点为新节点
        nextNode.pre = node;
    }

    // 获取下一个节点
    public DoubleLoopNode next() {
        return this.next;
    }

    // 获取上一个节点
    public DoubleLoopNode pre() {
        return this.pre;
    }

    // 获取数据
    public int getData() {
        return this.data;
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建节点
        DoubleLoopNode dln1 = new DoubleLoopNode(1);
        DoubleLoopNode dln2 = new DoubleLoopNode(2);
        DoubleLoopNode dln3 = new DoubleLoopNode(3);

        // 追加节点
        dln1.append(dln2);
        dln2.append(dln3);

        // 查看所有节点
        System.out.println(dln2.pre().getData());
        System.out.println(dln2.getData());
        System.out.println(dln2.next().getData());
    }
}

 

以上是关于Java数据结构 - 双向循环链表的主要内容,如果未能解决你的问题,请参考以下文章

java数据结构-06双向循环链表

《链表》之带头双向循环链表

数据结构--双向循环链表

Java数据结构 - 双向循环链表

带头双向循环链表 代码实现 review

java数据结构-双向循环链表测试