实现 双绞链 - s9797456/MyCommonCodeSnippets GitHub Wiki
public class Node {
public int value;
public Node left;
public Node right;
public void store(int value){
if(value<this.value){
if(left ==null){
left = new Node();
left.value=value;
}else{
left.store(value);
}
}
else if(value>this.value){
if(right ==null){
right = new Node();
right.value=value;
}else{
right.store(value);
}
}
}
public boolean find(int value){
System.out.println("happen" +this.value);
if(value ==this.value){
return true;
}else if(value>this.value){
if(right ==null)return false;
return right.find(value);
}else{
if(left ==null)return false;
return left.find(value);
}
}
public void preList(){
System.out.print(this.value+ ",");
if(left!=null)left.preList();
if(right!=null) right.preList();
}
public void middleList(){
if(left!=null)left.preList();
System.out.print(this.value+ ",");
if(right!=null)right.preList();
}
public void afterList(){
if(left!=null)left.preList();
if(right!=null)right.preList();
System.out.print(this.value+ ",");
}
public static void main(String [] args){
int [] data =new int[20];
for(int i=0;i<data.length;i++)
{
data[i] = (int)(Math.random()*100)+ 1;
System.out.print(data[i] +",");
}
Node root = new Node();
root.value = data[0];
for(int i=1;i<data.length;i++){
root.store(data[i]);
}
root.find(data[19]);
root.preList();
System.out.println();
root.middleList();
System.out.println();
root.afterList();
}
}