二叉树数据结构实现
详解地址传送门:http://blog.youkuaiyun.com/jianyuerensheng/article/details/51240068
package 二叉树;
public class TwoForkTree {
//*************************
//控制台打印输入:1->3->4->6->7->8->10->13->14->
//*************************
private Node root;
public void addNode(int data) {
if(root==null) {
root=new Node(data);
}else {
root.add(data);
}
}
public void printNode() {
if(root!=null) {
root.print();
}
}
class Node{
private int data;
private Node left;
private Node right;
public Node(int data) {
this.data=data;
}
//添加节点
public void add(int data) {
if(this.data>data) {
if(this.left==null) {
this.left=new Node(data);
}else {
this.left.add(data);
}
}else if(this.data<=data) {
if(this.right==null) {
this.right=new Node(data);
}else {
this.right.add(data);
}
}
}
//中序遍历:左中右
public void print() {
//左
if(this.left!=null) {
this.left.print();
}
//中
System.out.print(this.data+"->");
//右
if(this.right!=null) {
this.right.print();
}
}
}
//**********main方法测试**************
public static void main(String[] args) {
TwoForkTree forkTree=new TwoForkTree();
forkTree.addNode(8); //添加节点
forkTree.addNode(3); //添加节点
forkTree.addNode(10);//添加节点
forkTree.addNode(1); //添加节点
forkTree.addNode(6); //添加节点
forkTree.addNode(14);//添加节点
forkTree.addNode(4); //添加节点
forkTree.addNode(7); //添加节点
forkTree.addNode(13);//添加节点
forkTree.printNode();//打印所有节点
}
}