您的位置:首页 > 其它

二叉树排序

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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: