java实现二叉查找树
来源:互联网 发布:pe中如何查看mac地址 编辑:程序博客网 时间:2024/05/23 01:56
/**
* 二叉查找树:一列无序的int数组,通过二叉树查找方法创建我们需要的树,最后前序遍历得到有序的序列
*
* @author timmy1 实现步骤:第一个数字即为根节点:后面的元素通过比较数据的大小
* 1.如果比当前节点数据域小,则查找该节点的左孩子,如果没有左孩子,则以该数据为节点创建左孩子。
* 2.如果有左孩子,还需要进行比较,比节点数据域小,查找左孩子,比节点数据域大查找,查找右孩子,没有则创建,有的话进行比较
*/
public class BinaryCheckTree {
private TreeNode<Integer> root;
private void createBinCheckTree(int i, int[] array) {
if (i == array.length - 1)
return;
int data = array[i];
TreeNode<Integer> newNode = new TreeNode<Integer>(data);
TreeNode<Integer> node;
if (root == null) {
root = newNode;
return;
}
node = root;
// 节点与左右孩子的关系是左小右大
while (node != null) {
if (node.getData() > data) {// 数组元素比节点数据域小-》查找左节点
if (node.leftChild != null) {
node = node.leftChild;
} else {
node.leftChild = newNode;
break;
}
} else {// 数组元素比节点数据域大-》查找右节点
if (node.rightChild != null) {
node = node.rightChild;
} else {
node.rightChild = newNode;
break;
}
}
}
}
public static void main(String[] args) {
BinaryCheckTree tree = new BinaryCheckTree();
int[] array = new int[] { 9, 23, 8, 10, 78, 13, 1, 5, 8, 32, 12 };
for (int i = 0; i < array.length; i++) {
tree.createBinCheckTree(i, array);
}
tree.printPreTra();
}
private void printPreTra() {
TreeUtil.midTraversal(root);
}
}
结果打印:
pre Traversal:1
pre Traversal:5
pre Traversal:8
pre Traversal:8
pre Traversal:9
pre Traversal:10
pre Traversal:13
pre Traversal:23
pre Traversal:32
pre Traversal:78
0 0
- JAVA二叉查找树实现
- java实现二叉查找树
- 二叉查找树 java实现
- 二叉查找树 Java实现
- java实现二叉查找树
- 二叉查找树Java实现
- Java 实现二叉查找树
- Java实现二叉查找树
- java实现二叉查找树
- java实现二叉查找树
- java实现二叉查找树
- Java实现二叉查找树
- Java实现二叉树查找
- 二叉查找树Java实现
- java实现二叉查找
- java实现二叉查找
- java实现二叉树查找树
- 二叉查找树的Java实现
- 运维笔记19 (DNS服务器bind的相关配置,主从DNS服务器,动态域名解析的简单配置)
- Module not found: Error: Cannot resolve module 'react/lib/ReactMount' in ...
- java抽奖算法
- 一个版本Tomcat6多处使用,以及集成solr的配置
- 单一原则
- java实现二叉查找树
- zynq u-boot驱动串口打印乱码或者无打印
- DDR基础之Write_leveling简介
- windows下python3.5安装setuptools以及百度坐标系(bd-09)、火星坐标系(国测局坐标系、gcj02)、WGS84坐标系之间的坐标互转python实现以及python中exce
- Codeforces Round #381 (Div. 2) B. Alyona and flowers(思维题目)
- 解决浏览器记住密码输入框的问题
- Spring容器配置注入List集合对象属性
- Android--将Uri从file://改成content://
- Linux下which、whereis、locate、find 命令的区别