双向循环链表

通过任何节点可以找到他的上一个节点和下一个节点
package demo2; //双向循环链表 public class DoubleNode { // 上一个节点 DoubleNode pre = this; // 下一个节点 DoubleNode next = this; // 数据 Object data; public DoubleNode(Object data) { this.data = data; } // 增加节点 public void insert(DoubleNode node) { // 原来的下一个节点 DoubleNode nodeNext = this.next; // 把原來的下一个节点设置为新节点 this.next = node; // 把新节点的上一个节点设置为原来的节点 node.pre = this; // 把新节点的下一个节点设置为原来的下一个节点 node.next = nodeNext; // 将新节点的上一个节点设置为新节点 nodeNext.pre = node; } public DoubleNode next() { return this.next; } public DoubleNode pre() { return this.pre; } public String getData() { return this.data.toString(); } }
package demo2.test; import demo2.DoubleNode; public class TestDoubuleNode { public static void main(String[] args) { DoubleNode n1 = new DoubleNode("1"); DoubleNode n2 = new DoubleNode("2"); DoubleNode n3 = new DoubleNode("3"); n1.insert(n2); n2.insert(n3); System.out.println(n2.pre().getData()); System.out.println(n2.getData()); System.out.println(n2.next().getData()); } }
古之善为士者,微妙玄通,深不可识

浙公网安备 33010602011771号