上一章:數據結構複習(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;
}
}