二叉排序树和堆的区别
来源:互联网 发布:青少年编程创业 编辑:程序博客网 时间:2024/04/30 21:37
在二叉排序树中,每个结点的值均大于其左子树上所有结点的值,小于其右子树上所有结点的值,对二叉排序树进行中序遍历得到一个有序序列。所以,二叉排序树是结点之间满足一定次序关系的二叉树;
堆是一个完全二叉树,并且每个结点的值都大于或等于其左右孩子结点的值(这里的讨论以大根堆为例),所以,堆是结点之间满足一定次序关系的完全二叉树。
具有n个结点的堆,其深度即为堆所对应的完全二叉树的深度log n 。
在二叉排序树中,某结点的右孩子结点的值一定大于该结点的左孩子结点的值;在堆中却不一定,堆只是限定了某结点的值大于(或小于)其左右孩子结点的值,但没有限定左右孩子结点之间的大小关系。
在二叉排序树中,最小值结点是最左下结点,其左指针为空;最大值结点是最右下结点,其右指针为空。在大根堆中,最小值结点位于某个叶子结点,而最大值结点是大根堆的堆顶(即根结点)。
堆是为了实现排序而设计的一种数据结构,它不是面向查找操作的,因而在堆中查找一个结点需要进行遍历,其平均时间复杂度是O(n)。
1 0
- 二叉排序树和堆的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- xml的简介及应用
- RAC 两节点的时间不一致
- ARM Linux系统调用
- 升级Ubuntu系统
- CentOS Oracle11gR2 设置开机自启动
- 二叉排序树和堆的区别
- maven之仓库(repository)导出c盘
- 清朝皇帝和八旗制度
- 了解new_handler
- Service 生命周期基础
- 微信界面
- FragmentPagerAdapter+fragment错位的问题解决
- eclipse不能创建tomcat服务器的解决办法
- ButterKnife是一个专注于Android系统的View注入框架