數據結構複習(7)---雙向循環鏈表

上一章:數據結構複習(6)—循環鏈表

package cjy.datastructure;
/**
 * 雙向循環鏈表
 * Title: DoubleNode.java
 * @author CJY》10258
 * @date 2019年7月12日
 */
public class DoubleNode {
	//數據域
	int data;
	//雙向循環 ,前驅 ,後繼 = this 循環
	DoubleNode pre = this;
	DoubleNode next = this;

	public DoubleNode(int data) {
		this.data = data;
	}

	public int getData() {
		return this.data;
	}

	public DoubleNode pre() {
		return this.pre;
	}

	public DoubleNode next() {
		return this.next;
	}

	/**
	 * 添加數據
	 * 
	 * @param newNode
	 */
	public void insertDoubleNode(DoubleNode newNode) {
		//拿下一個指針
		DoubleNode nextNode = next;
		//新指針指向原來的
		this.next = newNode;
		newNode.pre = nextNode;
		newNode.next = nextNode;
		nextNode.pre = newNode;
	}
	/**
	 * 刪除
	 */
	public void deleteDoubleNode() {
		// 1 - 2 - 3   拿到1  》》3   和 3》》1的指針 
		DoubleNode nextNextNode = next.next;
		DoubleNode prePreNode = nextNextNode.pre.pre;
		//3》》1   重新指向1
		this.next = nextNextNode;
		this.pre = prePreNode;
		//1》》3   重新指向3
		nextNextNode = this.next;
		prePreNode = this.pre;
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章