class TreeNode {
int value;
TreeNode left_Node;
TreeNode right_Node;
// TreeNode构造函数
public TreeNode(int value) {
this.value=value;
this.left_Node=null;
this.right_Node=null;
}
}
class BinaryTree {
public TreeNode rootNode; //二叉树的根节点
//构造函数:利用传入一个数组的参数来建立二叉树
public BinaryTree(int[] data) {
for(int i=0;i<data.length;i++)
Add_Node_To_Tree(data[i]);
}
//将指定的值加入到二叉树中适当的节点
void Add_Node_To_Tree(int value) {
TreeNode currentNode=rootNode;
if(rootNode==null) { //建立树根
rootNode=new TreeNode(value);
//一次添加一个节点进去
return;
}
//建立二叉树
while(true) {
if (value<currentNode.value) { //在左子树
if(currentNode.left_Node==null) {
currentNode.left_Node=new TreeNode(value);
return;
}
else currentNode=currentNode.left_Node;
}
else { //在右子树
if(currentNode.right_Node==null) {
currentNode.right_Node=new TreeNode(value);
return;
}
else currentNode=currentNode.right_Node;
}
}
}
}
网友评论