二叉排序树的基本原理是:讲一个内容作为根节点保存,如果后面的数比根节点小,则放在左子树,如果比根节点大,则放在右子树
public class ComparableDemo {
public static void main(String[] args){
Binarytree bt = new Binarytree();
Scanner scan = new Scanner(System.in);
System.out.print("请输节点数据以逗号隔开:");
String str = scan.nextLine().toString();
String arr[] = str.split(",");
int b[] = new int[arr.length];
for(int i = 0;i<b.length;i++){
b[i] = Integer.parseInt(arr[i]);
bt.add(b[i]);
}
System.out.println("排序之后的结果是:");
bt.print();
}
}
class Binarytree{
class Node{
private Comparable data;
private Node left;
private Node right;
public void addnode(Node newNode) {
if (newNode.data.compareTo(this.data) < 0) {
if (this.left == null) {
this.left = newNode;
} else {
this.left.addnode(newNode);
}
}
if(newNode.data.compareTo(this.data)>=0){
if(this.right == null){
this.right = newNode;
}else{
this.right.addnode(newNode);
}
}
}
public void printNode(){
if(this.left!= null){
this.left.printNode();
}
System.out.print(this.data +"\t");
if(this.right!= null){
this.right.printNode();
}
}
}
private Node root;
public void add(Comparable data){
Node newNode = new Node();
newNode.data = data;
if(root == null){
root = newNode;
}else{
root.addnode(newNode);
}
}
public void print() {
this.root.printNode();
}
}