java用二叉树排序,java中利用二叉树算法进行排序

class BinaryTree{

class Node{// 声明一个节点类

private Comparable data ;// 保存具体的内容

private Node left ;// 保存左子树

private Node right ;// 保存右子树

public Node(Comparable data){

this.data = data ;

}

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(data) ; // 定义新的节点

if(root==null){ // 没有根节点

root = newNode ; // 第一个元素作为根节点

}else{

root.addNode(newNode) ; // 确定是放在左子树还是放在右子树

}

}

public void print(){

this.root.printNode() ; // 通过根节点输出

}

};

public class ComparableDemo03{

public static void main(String args[]){

BinaryTree bt = new BinaryTree() ;

bt.add(8) ;

bt.add(3) ;

bt.add(3) ;

bt.add(10) ;

bt.add(9) ;

bt.add(1) ;

bt.add(5) ;

bt.add(5) ;

System.out.println("排序之后的结果:") ;

bt.print() ;

}

};

输出结果:

排序之后的结果:

1

3

3

5

5

8

9

10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值