Node nil;
class Node{
Node ch,preBro,nextBro,p=nil;
int id;
public Node(int id) {
this.id = id;
}
public Node() {
}
void init(){
ch = new Node();
ch.preBro = ch;
ch.nextBro = ch;
}
}
void insert(Node child,Node parent){
//如果插入队尾
child.nextBro = parent.ch;
child.preBro = parent.ch.preBro;
parent.ch.preBro.nextBro = child;
parent.ch.preBro = child;
// //如果插入队头
// child.preBro = parent.ch;
// child.nextBro = parent.ch.nextBro;
// parent.ch.nextBro.preBro = child;
// parent.ch.nextBro = child;
}
void preOrder(Node root){
System.out.println(root.id);
Node curr = root.ch.nextBro;
while(curr!=root.ch) {
preOrder(curr);
curr = curr.nextBro;
}
}
void postOrder(Node root){
Node curr = root.ch.nextBro;
while(curr!=root.ch) {
postOrder(curr);
curr = curr.nextBro;
}
System.out.println(root.id);
}
void delete(Node node){
Node p = node.p;
node.preBro.nextBro = node.nextBro;
node.nextBro.preBro = node.preBro;
node.preBro = nil;
node.nextBro = nil;
node.p = nil;
}
void cover(Node newOne,Node oldOne){ //new继承old的父子关系
newOne.p = oldOne.p;
newOne.nextBro = oldOne.nextBro;
newOne.preBro = oldOne.preBro;
oldOne.ch.nextBro.preBro = newOne.ch;
oldOne.ch.preBro.nextBro = newOne.ch;
newOne.ch.nextBro = oldOne.ch.nextBro;
newOne.ch.preBro = oldOne.ch.preBro;
oldOne.ch.nextBro = nil;
oldOne.ch.preBro = nil;
}