java实现的二叉树排序
来源:互联网 发布:node 命令行多步执行 编辑:程序博客网 时间:2024/04/29 06:08
二叉树节点的特征:
1.当前树节点的值大于其左孩子节点值,当前树节点的值小于其右孩子节点值
2.左右孩子节点也符合1所述特点
package sort;
/**
* 二叉树数据结构
* created by tangsi 2014/09/14
* @author Administrator
*
*/
public class BinaryNode {
/**
* 树节点所包裹的值
*/
private int value;
/**
* 左孩子
*/
private BinaryNode leftChild;
/**
* 右孩子
*/
private BinaryNode rightChild;
public BinaryNode(int value, BinaryNode leftChild, BinaryNode rightChild) {
super();
this.value = value;
this.leftChild = leftChild;
this.rightChild = rightChild;
}
/**
* 遍历二叉树
* @param root
*/
public static void iterate(BinaryNode root) {
if(root.getLeftChild() != null) {
iterate(root.getLeftChild());
}
System.out.print(root.getValue() +"\t");
if(root.getRightChild() != null) {
iterate(root.getRightChild());
}
}
/**
* 添加二叉树节点
* @param value
*/
public void addChild(int value) {
if(this.value > value) { //添加为左孩子
if(this.leftChild != null) {
this.leftChild.addChild(value);
}else {
this.leftChild = new BinaryNode(value, null, null);
}
}else { //添加为右孩子
if(this.rightChild != null) {
this.rightChild.addChild(value);
}else {
this.rightChild = new BinaryNode(value, null, null);
}
}
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public BinaryNode getLeftChild() {
return leftChild;
}
public void setLeftChild(BinaryNode leftChild) {
this.leftChild = leftChild;
}
public BinaryNode getRightChild() {
return rightChild;
}
public void setRightChild(BinaryNode rightChild) {
this.rightChild = rightChild;
}
}
package sort;
import org.junit.Test;
/**
* created by tangsi 2014/09/14
* 二叉树排序测试
* @author Administrator
*
*/
public class BinaryTreeSortTest {
@Test
public void test1() {
int[] arr = new int[]{3,2,5,7,1,9,1};
BinaryNode root = new BinaryNode(arr[0], null, null);
for(int i=1;i <arr.length; i++) {
root.addChild(arr[i]);
}
BinaryNode.iterate(root);
}
}
- 排序二叉树的实现 Java版
- java实现的二叉树排序
- Java实现排序二叉树的操作
- java实现排序二叉树
- java实现排序二叉树
- Java实现二叉树排序
- 排序二叉树的实现
- 数据结构(JAVA)---二叉树的简单实现及排序
- Java实现二叉排序(查找)树的操作
- 二叉树的三种排序Java实现
- 二叉树排序在Java代码的简单实现
- Java实现二叉树和常见的排序
- 二叉排序数的java实现
- Java 实现二叉树排序和查找
- 用java实现一个二叉树排序
- 排序二叉树及其Java实现
- java代码实现排序二叉树
- 排序二叉树JAVA版实现
- SQL server 存储过程中解决整数参数的传递问题
- hdu 4995 Revenge of kNN(模拟)
- 自己在项目中写的简单的仿freemarker模板引擎工具
- QThread多线程使用方法和使用探讨
- strncpy
- java实现的二叉树排序
- [Clojure] Data Collection and Data Analysis on the music of www.xiami.com - Part 4
- HDU 4998 Rotate(计算几何)2014年鞍山赛区网络赛
- xcode6中如何添加pch文件
- linux下用vim+ctags看源代码
- JAVA 泛型由浅入深详细不过的解释
- 计算机病毒的基本结构
- 面向对象的5个基本设计原则
- Haar特征描述子及其代码实现