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

匿名 (未验证) 提交于 2019-12-02 21:52:03
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());     } }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!