二叉查找树(三)之 Java的实现
2014-03-28 09:43
2176 查看
概要
在前面分别介绍了"二叉查找树的相关理论知识,然后给出了二叉查找树的C和C++实现版本"。这一章写一写二叉查找树的Java实现版本。目录
1. 二叉树查找树
2. 二叉查找树的Java实现
3. 二叉查找树的Java测试程序
转载请注明出处:https://www.geek-share.com/detail/2606970982.html
更多内容: 数据结构与算法系列 目录
(01) 二叉查找树(一)之 图文解析 和 C语言的实现
(02) 二叉查找树(二)之 C++的实现
(03) 二叉查找树(三)之 Java的实现
二叉查找树简介
二叉查找树(Binary Search Tree),又被称为二叉搜索树。它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] <= key[x];如果y是x的右子树的一个结点,则key[y] >= key[x]。那么,这棵树就是二叉查找树。如下图所示:
/** * Java 语言: 二叉查找树 * * @author skywang * @date 2013/11/07 */ public class BSTreeTest { private static final int arr[] = {1,5,4,3,2,6}; public static void main(String[] args) { int i, ilen; BSTree<Integer> tree=new BSTree<Integer>(); System.out.print("== 依次添加: "); ilen = arr.length; for(i=0; i<ilen; i++) { System.out.print(arr[i]+" "); tree.insert(arr[i]); } System.out.print("\n== 前序遍历: "); tree.preOrder(); System.out.print("\n== 中序遍历: "); tree.inOrder(); System.out.print("\n== 后序遍历: "); tree.postOrder(); System.out.println(); System.out.println("== 最小值: "+ tree.minimum()); System.out.println("== 最大值: "+ tree.maximum()); System.out.println("== 树的详细信息: "); tree.print(); System.out.print("\n== 删除根节点: "+ arr[3]); tree.remove(arr[3]); System.out.print("\n== 中序遍历: "); tree.inOrder(); System.out.println(); // 销毁二叉树 tree.clear(); } }
View Code
在二叉查找树的Java实现中,使用了泛型,也就意味着支持任意类型; 但是该类型必须要实现Comparable接口。
二叉查找树的Java测试程序
上面的BSTreeTest.java是二叉查找树树的测试程序,运行结果如下:== 依次添加: 1 5 4 3 2 6 == 前序遍历: 1 5 4 3 2 6 == 中序遍历: 1 2 3 4 5 6 == 后序遍历: 2 3 4 6 5 1 == 最小值: 1 == 最大值: 6 == 树的详细信息: 1 is root 5 is 1's right child 4 is 5's left child 3 is 4's left child 2 is 3's left child 6 is 5's right child == 删除根节点: 3 == 中序遍历: 1 2 4 5 6
下面对测试程序的流程进行分析!
(01) 新建"二叉查找树"root。
(02) 向二叉查找树中依次插入1,5,4,3,2,6 。如下图所示:
(03) 遍历和查找
插入1,5,4,3,2,6之后,得到的二叉查找树如下:
前序遍历结果: 1 5 4 3 2 6
中序遍历结果: 1 2 3 4 5 6
后序遍历结果: 2 3 4 6 5 1
最小值是1,而最大值是6。
(04) 删除节点4。如下图所示:
(05) 重新遍历该二叉查找树。
中序遍历结果: 1 2 4 5 6
相关文章推荐
- 二叉查找树 java实现
- java实现二叉查找树与AVL树
- 二叉查找树(二叉排序树)Java实现
- AVL树-自平衡二叉查找树(Java实现)
- 二叉查找树java实现
- 二叉查找树java实现
- 二叉查找树 图文解析 和 Java的实现
- java实现(1)-二叉查找树
- 二叉查找树的java实现
- java实现二叉查找树
- 线索化二叉查找树 java实现
- 二叉查找树的Java实现
- Java 实现二叉查找树
- java实现二叉查找树
- 二叉查找树(AVL)插入算法Java实现
- AVL树-自平衡二叉查找树(Java实现)
- 数据结构实战java实现二叉查找树
- 二叉树---(2)二叉查找树之Java实现
- 二叉查找树 Java实现
- 浅析数据结构与算法7--二叉查找树 及Java实现