package tree;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author Eightn0
* @create 2021-03-31 18:45
* 用链表建树
*/
class TreeNode{
int value;
TreeNode left_Node;
TreeNode right_Node;
public TreeNode(int value) {
this.value = value;
this.left_Node = null;
this.right_Node = null;
}
}
class BineryTree{
public TreeNode rootNode;//根节点
//构造函数
public BineryTree(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;
}
}
}
}
public class NodeBuildTree {
public static void main(String[] args) throws IOException {
int ArraySize = 10;
int tempdata;
int[] content = new int[ArraySize];
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请连续输入"+ArraySize+"个数据:");
for (int i = 0; i < ArraySize; i++) {
System.out.println("请输入第"+(i+1)+"个数据");
tempdata = Integer.parseInt(bufferedReader.readLine());
content[i] = tempdata;
}
new BineryTree(content);
System.out.println("建立成功!");
}
}