二叉树,每个结点的子节点最多只能有两个。而且结点的值在比左结点大,比右结点小.
实现可以把结点单独抽出来做一个类,包含它本身的数据及左右结点的引用.
另外的就是树类,包含根结点引用,其他的结点都可以从根结点遍历找到
1.节点类
public class Node {
//关键字
public int iData;
//数据
public double dData;
//左结点
public Node leftChild;
//右结点
public Node rightChild;
//展示当前结点的数据
public void displayNode(){
System.out.println("{"+iData+","+dData+"}");
}
}
2.树类
public class Tree {
private Node root;
public Tree(){
this.root=null;
}
//根据当前寻找的值进行判断是在左边结点还是右边结点
public Node find(int key){
Node current=this.root;
while(key!=current.iData){
if(key<current.iData){
current=current.leftChild;
}else{
current=current.rightChild;
}
if (current==null) {
return null;
}
}
return current;
}
//根据插入结点的值比较判断是在左边节点还是右边结点,
//直到判断的左结点或者右节点为空,则表示是插入的位置
public void insert(int id,double dd){
Node newNode=new Node();
newNode.iData=id;
newNode.dData=dd;
Node current=this.root;
Node parent;
while(true){
parent=current;
if(id<current.iData){
current=current.leftChild;
if(current==null){
parent.leftChild=newNode;
return ;
}
}else{
current=current.rightChild;
if(current==null){
parent.rightChild=newNode;
return ;
}
}
}
}
public boolean delete(int key){
//当删除的结点下面没有其他结点
//当删除的结点下面有一个结点
//当删除的结点下面有两个结点
return true;
}
}
原文:http://www.cnblogs.com/Niel-3/p/7447062.html