二叉树排序
2016-07-11 11:36
555 查看
<pre name="code" class="java">
<span style="white-space:pre"> </span>//内部节点类 public class Node{ public int data;//传的数据 public Node left;//左节点 public Node right;//右节点 public Node(){ } public Node(int data){ this.data = data; } //添加节点 public void addNode(Node newNode){ //新加的数据小于本来数据,放左边否,则放右边 if(newNode.data < this.data){ //如果找到左节点,接着对比,没有就将值放到左节点上 if(this.left == null){ this.left = newNode; }else{ //递归查询 this.left.addNode(newNode); } }else{ if(this.right == null){ this.right = newNode; }else{ this.right.addNode(newNode); } } } //打印节点 public void printNode(){ //如果左节点不为空,那么接着查询左节点,知道为空(递归) if(this.left != null){ this.left.printNode(); } //打印查询到的所有节点值 System.out.println(this.data); if(this.right != null){ this.right.printNode(); } } }
/** * 将Node排序方法封装 * @author tiger * */ public class BinaryTree { private Node root; public void sort(int[] arr){ for (int i = 0; i < arr.length; i++) { Node newNode = new Node(arr[i]); if(root == null){ root = newNode; }else{ root.addNode(newNode); } } } public void print(){ if(root != null){ root.printNode(); } } }
//测试类 public class BinaryTreeSort { public static void main(String[] args) { int[] n = {5,7,1,3,0}; BinaryTree bt = new BinaryTree(); bt.sort(n); bt.print(); } }
相关文章推荐
- 将pdf文档内容转换成jpg图片的方法
- Js运动动画系列7--多物体运动-设置样式属性做不同的运动
- mysql 在linux 修改账号密码
- VBA Find Printers
- 谈谈改变 UIAlertView 和 UIActionSheet 的颜色
- 光流(二)--光流算法
- docker常用命令详解
- Go语言圣经(中文版)读书笔记(五)
- ffmpeg 基础知识整理
- 【SpringMVC框架】springmvc的基础知识
- Android快速批量多渠道包的“蛋生”
- Ios 24小时制与12小时制
- section元素
- C++与C#字符串传递
- Drawable
- rhel使用Centos源
- java正则表达式验证格式
- socket的半包,粘包与分包的问题
- CYPRESS BLE学习心得(一):如何在使用CYPRESS BLE中的SFLash
- java实现RSA和AES加密(一)