原理图:
源代码
Node :
public class Node {
int data; //数据项
String name ; //数据项
public Node leftChild; //左子树
public Node rightChild; //右子树
public Node(int value,String name) {
// TODO Auto-generated constructor stub
data = value;
this.name = name;
}
}
Tree:
public class Tree {
public Node root; //根节点
public void insert(int value,String name) //插入结点
{
//封装成结点
Node newNode = new Node(value,name);
//引用当前结点
Node current = root;
//引用父结点
Node parent;
//判断是否为空树
if(current == null)
{
root = newNode;
return;
}else
{
while(true)
{
parent = current; //父结点指向当前结点
if(current.data > value) //要插入的值小于该结点的值
{
current = current.leftChild; //往左走
if(current == null) //到了叶子结点
{
parent.leftChild =newNode;
return;
}
}
else
{
current = current.rightChild; //往右走
if(current == null)
{
parent.rightChild = newNode;
return;
}
}
}
}
}
//查找结点
public Node find(int value)
{
Node current = root; //指向根节点
while(current.data != value)
{
if(current.data > value)
{
current = current.leftChild;
}
else
{
current = current.rightChild;
}
if(current == null)
{
return null;
}
}
return current;
}
}