通过二叉中序排序树能够实现升序排序。
public class BinarySortTreeDemo2 {
public static void main(String[] args) {
int arr []={1,2,56,43,3,2,46,34};
//创建二叉树对象。
BinarySortTree binarySortTree=new BinarySortTree();
for(int i=0;i<arr.length;i++){
//用循环添加结点到创建的二叉树中,
binarySortTree.add(new Node(arr[i]));
}
//中序遍历二叉树
System.out.println( "中序二叉树排序");
binarySortTree.infixOrder();
}
}
class BinarySortTree{
private Node root;
public void add(Node node){
if(root==null){
root=node;
}
else root.add(node);
}
public void infixOrder(){
if(root!=null){
root.infixOrder();
}
else System.out.println("二叉树为空");
}
}
class Node{//创建Node结点
int value;
Node left;
Node right;
public Node(int value){
this.value=value;
}
@Override
public String toString(){
return "Node [value="+value+"]";
}
//添加结点的方法。
public void add(Node node){
if(node==null){
return;
}
//判断输入结点的值与当前根节点值的大小关系
if(node.value<this.value){
if(this.left==null){
this.left=node;
}
else {
this.left.add(node);
}
}
else {//添加的节点值大于当前结点值
if(this.right==null){
this.right=node;
}
else {
//不满足就继续递归右子树
this.right.add(node);
}
}
}
public void infixOrder(){
if(this.left!=null){
this.left.infixOrder();
}
System.out.println(this);
if(this.right!=null){
this.right.infixOrder();
}
}
}
标签:二叉,int,public,升序,排序,BinarySortTree
From: https://www.cnblogs.com/JK8395/p/16961923.html