二叉排序树和堆的区别

原创 2015年11月20日 12:36:32

在二叉排序树中,每个结点的值均大于其左子树上所有结点的值,小于其右子树上所有结点的值,对二叉排序树进行中序遍历得到一个有序序列。所以,二叉排序树是结点之间满足一定次序关系的二叉树;


  堆是一个完全二叉树,并且每个结点的值都大于或等于其左右孩子结点的值(这里的讨论以大根堆为例),所以,堆是结点之间满足一定次序关系的完全二叉树。


  具有n个结点的二叉排序树,其深度取决于给定集合的初始排列顺序,最好情况下其深度为log n(表示以2为底的对数),最坏情况下其深度为n;

  具有n个结点的堆,其深度即为堆所对应的完全二叉树的深度log n 。


  在二叉排序树中,某结点的右孩子结点的值一定大于该结点的左孩子结点的值;在堆中却不一定,堆只是限定了某结点的值大于(或小于)其左右孩子结点的值,但没有限定左右孩子结点之间的大小关系。


  在二叉排序树中,最小值结点是最左下结点,其左指针为空;最大值结点是最右下结点,其右指针为空。在大根堆中,最小值结点位于某个叶子结点,而最大值结点是大根堆的堆顶(即根结点)。


  二叉排序树是为了实现动态查找而设计的数据结构,它是面向查找操作的,在二叉排序树中查找一个结点的平均时间复杂度是O(log n);
  堆是为了实现排序而设计的一种数据结构,它不是面向查找操作的,因而在堆中查找一个结点需要进行遍历,其平均时间复杂度是O(n)。
版权声明:本文为博主原创文章,未经博主允许不得转载。

八大排序算法 之 堆排序(二叉树排序)

例如数组 a={19,3,60,7,1,15,33,24,45,32,79,85}; 排序思想: 1,堆排序也是选择排序的一种,根据堆得特性,每次把最大或最小值(本次以最大值为例)拿出来,按序排列; ...
  • yxb_yingu
  • yxb_yingu
  • 2016年05月07日 10:03
  • 9491

二叉树及堆排序

一、二叉树的定义      在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常根的子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作...
  • StrongManTwo
  • StrongManTwo
  • 2014年12月16日 11:16
  • 1296

二叉排序树

一、二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子...
  • yzl20092856
  • yzl20092856
  • 2015年08月31日 16:50
  • 523

二叉排序树

  • 2015年09月02日 09:39
  • 872KB
  • 下载

二叉树-详解二叉排序树

一、二叉搜索树首先二叉排序树也是一棵二叉树,所谓二叉树,就是“任何节点最多只允许两个子节点”,这两个子节点称为左右子节点。如下便是一个二叉树。 1.1、二叉排序树性质:1、就是若它的左子树不...
  • yixianfeng41
  • yixianfeng41
  • 2016年10月14日 01:06
  • 8738

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

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

二叉排序树

二叉排序树什么是二叉排序树:即一个二叉树,它的每一个结点的左孩子的key值比当前结点的key值小,而右孩子结点的key值比当前结点的key值大,这样的一个树就是二叉排序树,也叫二叉搜索树(BST_tr...
  • bitboss
  • bitboss
  • 2016年10月20日 09:36
  • 941

二叉排序树

二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左...
  • wangwenwen
  • wangwenwen
  • 2014年10月18日 16:49
  • 508

二叉排序树(Binary Sort Tree,二叉查找树,二叉搜索树)--【算法导论】

1、首先是了解了二叉搜索树; 2、接下来看的是查询二叉搜索树,查询二叉搜索树的内容比较多; (1)查找:即是查询关键字,若存在,返回该节点的指针;否则,返回空;这个书中给了两段伪码,迭代、递归随意; ...
  • xjm199
  • xjm199
  • 2014年02月26日 22:45
  • 9645

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

1、序      详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、  查找最大值、查找最小值、查找指定结点的前驱和后继 2、二叉查找树简介      它或者是一棵空树;或者...
  • Touch_2011
  • Touch_2011
  • 2011年09月28日 21:55
  • 58474
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉排序树和堆的区别
举报原因:
原因补充:

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