创建二叉排序树
package com.qey.learn;
/**
* @ClassName BinarySortTreeDemo
* @Description
* @Author qianxl
* @Date 2021-03-05 10:44
* @Version 1.1
**/
public class BinarySortTreeDemo{
public static void main(String args[]){
int [] array={1,23,12,34,12,21};
BinaryTrees binaryTree= new BinaryTrees();
for(int i=0;i<array.length-1;i++){
binaryTree.addNode(new HeroNode(array[i]));
}
binaryTree.infixOrder();
}
}
class BinaryTrees{
private HeroNode root;
public void addNode(HeroNode node){
if(root==null){
root=node;
return ;
}else{
root.addNode(node);
}
}
public void infixOrder(){
root.infixOrder();
}
}
class HeroNode{
private HeroNode left;
private HeroNode right;
private int data;
public HeroNode(int data) {
this.data = data;
}
@Override
public String toString() {
return "HeroNode{" +
"data=" + data +
'}';
}
//二叉排序树
//添加节点 与根节点比较,
// 1)小于根节点 若根节点做子树为空,则添加 若不为空则递归左子树
//2) 大于根节点 若根节点右子树为空,则添加到右节点,若不为空则递归循环左子树
public void addNode( HeroNode node){
if(node==null){
return ;
}
if(this.data>node.data){
if(this.left==null){
this.left=node;
}else{
this.left.addNode(node);
}
}else{
if(this.right==null){
this.right=node;
}else{
this.right.addNode(node);
}
}
}
//中序遍历
public void infixOrder( ){
if(this.left!=null){
this.left.infixOrder();
}
System.out.println(this);
if(this.right!=null){
this.right.infixOrder();
}
}
}