/*
* 初始化二叉树
*/
class LinkTree{
private Node root; //树根
private class Node{
private int data; //数据域
private Node lift; //左子树
private Node right; //右子树
//构造函数
Node(int data) {
super();
this.data = data;
Node lift = null;
Node right = null;
}
//插入节点方法
public void addNode(Node newNode,int data) {
if(this.data > newNode.data) { //比根值小的放到左边
if(this.lift == null) {
this.lift = newNode;
} else {
this.lift.addNode(newNode,data); //左递归
}
}
if(this.data <= newNode.data) { //比根值大的放右边
if(this.right == null) {
this.right = newNode;
} else {
this.right.addNode(newNode,data); //右递归
}
}
}
}
//调用插入节点方法
public void add(int data) {
Node newNode = new Node(data);
if(root == null) { //无树根时直接赋值
this.root = newNode;
} else {
this.root.addNode(newNode,data);
}
System.out.println("已插入");
}
}
public class Hello {
public static void main(String[] args) {
LinkTree list = new LinkTree();
list.add(5); //root
list.add(4); //左子树
list.add(6); //右子树
list.add(3);
list.add(7);
}
}