package 泛型;
import java.util.*;
public class TestNode<T>{
public TestNode<T> leftNode;
public TestNode<T> rightNode;
public T value;
//插入数据
public void Add(T t){
if(null==value)
value = t;
else {
// 如果当前节点有值,就进行判断,新增的值与当前值的大小关系
if((Integer)value>=(Integer)t){
if(null==leftNode)
leftNode=new TestNode<T>();
leftNode.Add(t);
}
else{
if(null==rightNode)
rightNode = new TestNode<T>() ;
rightNode.Add(t);
}
}
}
//中序遍历
public List<T> values(){
List<T> values = new ArrayList();
if(null!=leftNode)
values.addAll(leftNode.values());
values.add(value);
if(null!=rightNode)
values.addAll(rightNode.values());
return values;
}
public static void main(String[] args) {
int randoms[]=new int[]{7,8,3,5,6,2,5,9};
TestNode<Integer> roots = new TestNode<>();
for(int i=0;i<randoms.length;i++){
roots.Add(randoms[i]);
}
System.out.println(roots.values());
}
}
JAVA - 泛型二叉树
最新推荐文章于 2024-05-11 14:46:35 发布