二叉查找树-总结

原创 2015年07月10日 15:56:35
定义:
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的节点。
查找:
查找对于二叉树查找树来说很简单这也是二叉查找树的优势所在,和目标值一样查找成功,比当前节点大往右子树查找,比当前节点小往左子树查找,递归下去即可。算法复杂厚度为O(logn)。
插入:
二叉查找树插入都是叶子节点插入,首先第一步是查找,从根节点起,如果根节点为NULL,直接插入根节点即可,如果插入数据比插入节点大,往右子树插入,如果比插入节点小插入左子树,如果和插入节点相等,则在节点计数器加1。算法复杂度O(logn)。
查找树的建立:
建立就相当于把一个一个数,往一课树种做插入动作,算法复杂度O(nlogn)。
删除:
1、二叉查找树对的删除相对复杂点。如果删除节点没有左子树或者没有右子树那么只要把左儿子或者右儿子替换被删节点即可。
2、如果既没有左儿子也没有右儿子,直接删除即可,让父亲把指向儿子的指针置为空。
3、如果既有左儿子也有右儿子,找到右子树中的最小值替换被删除节点,同时删除改最小值(递归)算法复杂度为O(logn)

相关文章推荐

详解二叉查找树算法的实现

参考文献: 《数据结构(C语言版)》  严蔚敏 吴伟民 编著       开发平台:Ubuntu11.04     编译器:gcc version4.5.2 (Ubuntu/Linaro 4.5...
  • npy_lp
  • npy_lp
  • 2012年04月06日 13:32
  • 63249

深入理解二叉搜索树(BST)

一棵二叉搜索树(BST)是以一棵二叉树来组织的,可以用链表数据结构来表示,其中,每一个结点就是一个对象,一般地,包含数据内容key和指向孩子(也可能是父母)的指针属性。如果某个孩子结点不存在,其指针属...

二叉搜索树;二叉查找树;二叉排序树;binary search tree

binary search tree,中文翻译为二叉搜索树、二叉查找树或者二叉排序树。简称为BST 一:二叉搜索树的定义 他的定义与树的定义是类似的,也是一个递归的定义: 1、要么是一棵空树 ...

二叉查找树(二叉排序树)的详细实现

1、序      详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、  查找最大值、查找最小值、查找指定结点的前驱和后继 2、二叉查找树简介      它或者是一棵空树;或者...

二叉查找树的插入和删除详解

二叉查找树是如下定义的: (1)  左子树不空,则左子树上的所有结点的值均小于根结点的值 (2)  右子树不空,则右子树上的所有结点的值均大于根结点的值 二叉查找树可以为空,二叉查找树是递归定义...

二叉排序树(BST)/二叉查找树的建立(BST是笔试面试的常客)

二叉排序树又叫二叉查找树,英文名称是:Binary Sort Tree.  BST的定义就不详细说了,我用一句话概括:左 。 根据这个原理,我们可以推断:BST的中序遍历必定是严格递增的。      ...
  • stpeace
  • stpeace
  • 2013年06月09日 19:49
  • 55137

算法导论-12-1-具有相同关键字元素的二叉查找树

题目: 相同关键字的存在,给二叉查找树的实现带来了一些问题。 a)当用TREE-INSERT将n个具有相同关键字的数据项插入到一棵初始为空的二叉查找树中时,该算法的渐近性能如何? 我们可以对TR...

课程设计——二叉查找树

  • 2014年03月13日 16:08
  • 116KB
  • 下载

二叉查找树

  • 2014年09月15日 23:27
  • 3KB
  • 下载

学习《算法导论》 二叉查找树 总结

学习《算法导论》 二叉查找树 总结二叉查找树二叉查找树可以用链表结构来表示, 其中每个结点除了包括卫星数据外,还包括域left, right, parent; 它们分别指向结点的左儿子,右儿子和父结点...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉查找树-总结
举报原因:
原因补充:

(最多只允许输入30个字)