一、综述
二叉查找树或者是一棵空树,或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的节点。
基于二叉查找树树的二叉查找算法具有很高的效率O(logn),是一种很适合查找的数据结构,但是它也有确定,比如不够平衡。因此有改进后的平衡二叉查找树(AVL),这个下一篇再讲。
二、Java实现二叉查找树
插入根元素:45 插入45的左孩子元素:6 插入6的右孩子元素:43 插入45的右孩子元素:78 插入43的左孩子元素:12 插入78的右孩子元素:90 树中已经存在6不需要插入 插入12的右孩子元素:23 插入23的左孩子元素:21 插入23的右孩子元素:41 插入78的左孩子元素:64 插入41的左孩子元素:31 插入90的右孩子元素:91 树中已经存在91不需要插入 插入90的左孩子元素:81 树中已经存在6不需要插入 插入6的左孩子元素:4 插入12的左孩子元素:7 该树的中序遍历为:4 6 7 12 21 23 31 41 43 45 64 78 81 90 91 该树的前序遍历为:45 6 4 43 12 7 23 21 41 31 78 64 90 81 91 查找的元素为:ABinarySortTree$Node@56bf1a4a 删除元素元素:23 删除后,该树的中序遍历为:4 6 7 12 21 31 41 43 45 64 78 81 90 91 删除后,该树的前序遍历为:45 6 4 43 12 7 31 21 41 78 64 90 81 91 插入元素元素:114 插入91的右孩子元素:114 插入后,该树的中序遍历为:4 6 7 12 21 31 41 43 45 64 78 81 90 91 114 插入后,该树的前序遍历为:45 6 4 43 12 7 31 21 41 78 64 90 81 91 114 查找树中最小元素为:4 查找树中最大元素为:114
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/a369414641/article/details/47395505