双向循环链表--Java实现

版权声明:071623 https://blog.csdn.net/weixin_43584220/article/details/88817990


package cn.CSDN.Ravanla;

public class DoubleLink {
	public static void main(String[] args) {
		doubleNode n1 = new doubleNode(1);
		doubleNode n2 = new doubleNode(2);
		doubleNode n3 = new doubleNode(3);
		doubleNode n4 = new doubleNode(4);
		
		n1.after(n2);
		n2.after(n3);
		n3.after(n4);
		
		n1.searchAll();
	}
}



class doubleNode{
	doubleNode pre = this;
	doubleNode next = this;;
	int data;
	public doubleNode(int data) {
		this.data = data;
	}


	public void after(doubleNode node) {
		doubleNode nextNext = next;
		this.next = node;
		node.pre = this;
		node.next = nextNext;
		nextNext.pre = node;
	}

在这里插入图片描述
前面那个图片画错了pre和next指的对象指错了,不过还是可以和下面的图连起来看的
在这里插入图片描述

我用画图工具尴尬地画出了我所理解的,希望对你有用。

	public int getData(doubleNode node) {
		return node.data;
	}
	public doubleNode getNext(doubleNode node) {
		return node.next;
	}



	public void searchAll() {
		doubleNode temp = this;
		int value = this.data;
		while(temp.next.data != value) {
			System.out.println(temp.data);
			temp = temp.next;
		}
		System.out.println(temp.data);
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43584220/article/details/88817990