二叉搜索树
package com.example.demo.learning;
public class BinarySearchTree {
int data;
BinarySearchTree right;
BinarySearchTree left;
public BinarySearchTree(int data){
this.data = data;
right = null;
left = null;
}
private void insert(BinarySearchTree root,int data){
if (root.data > data){
if (root.left == null){
root.left = new BinarySearchTree(data);
}else {
insert(root.left,data);
}
}else {
if (root.right == null){
root.right = new BinarySearchTree(data);
}else {
insert(root.right,data);
}
}
}
//中序遍历(左根右)
public void out(BinarySearchTree root){
if (root != null){
out(root.left);
System.out.print(root.data + " ");
out(root.right);
}
}
public static void main(String[] args) {
int data[] = {5,7,2,8,3,4,3,6,1,9,7};
BinarySearchTree root = new BinarySearchTree(data[0]);
for(int i:data){
root.insert(root,data[i]);
}
System.out.print("中序遍历为:");
root.out(root);
}
}