public class Node {
public int value;
public Node left;
public Node right;
public void store(int value){
if(value<this.value){
if(this.left == null){
this.left = new Node();
this.left.value = value;
}else{
this.left.store(value);
}
}else if(value>this.value){
if(this.right == null){
this.right = new Node();
this.right.value = value;
}else{
this.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){
return this.left.find(value);
}else{
return this.right.find(value);
}
}
public void preList(){
System.out.println(this.value+",");
if(left!=null){
this.left.preList();
}
if(this.right != null){
this.right.preList();
}
}
public void middleList(){
if(this.left != null){
left.middleList();
}
System.out.println(this.value + ",");
if(this.right != null){
right.middleList();
}
}
public void afterList(){
if(this.left != null){
this.left.afterList();
}
if(this.right != null){
right.afterList();
}
System.out.println(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.println(data[i]+",");
}
System.out.println();
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();
}
}
用java实现的二叉排序树
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 这是组合设计模式。我有很多个(假设10万个)数据要保存起来,以后还需要从保存的这些数据中检索是否存在某个数据,(我...
- 1、首先gradle 是谷歌的一门语言、参考链接https://docs.gradle.org/current/u...