/*
* 初始化二叉树
*/
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);
}
}
本文介绍了一种二叉树的实现方式,重点讲解了如何通过递归进行节点的插入操作,并提供了一个简单的示例程序来展示二叉树的创建过程。
4590

被折叠的 条评论
为什么被折叠?



