堆(heaps)不是容器,而是一种特别的数据组织方式。堆一般用来保存序列容器。 堆是一个完全二叉树,每个节点与其子节点位置相对。父节点总是大于或等于子节点,这种情况下被叫作大顶堆,或者父节点总是小于或等于子节点,这种情况下叫作小顶堆。注意,给定父节点的子节点不一定按顺序排列。 创建堆 用来创建堆的函 ...
分类:
其他好文 时间:
2019-09-01 16:53:08
阅读次数:
81
堆是一个完全二叉树 用数组表示 a[1]表示堆顶数据 i是非叶子节点, 左节点是i*2 右节点是i*2+1 堆化函数(主要目的是保证某个非叶子节点以下的所有子节点都满足堆结构定义) 插入 删除 堆排序 1建堆 2排序 ...
分类:
编程语言 时间:
2019-09-01 14:44:38
阅读次数:
90
堆 堆就是一种利 用完全二叉树 来维护数据的一种数据结构,而当我们实际使用时使用数组来存储时,树中节点与数组中的值 相对应 ,也就是可以灵活运用 完全二叉树 的性质通过数组下标来维护堆。 想看Stl模板的堆请直达底部 为什么要选择堆? 堆的功能就是保持堆顶的元素最大/最小,本质上是一种 排序算法 , ...
分类:
其他好文 时间:
2019-08-30 23:09:00
阅读次数:
102
Description 小凸和小方相约玩密室逃脱,这个密室是一棵有 $n$ 个节点的完全二叉树,每个节点有一个灯泡。点亮所有灯泡即可逃出密室。每个灯泡有个权值 $Ai$ ,每条边也有个权值 $bi$ 。点亮第 1 个灯泡不需要花费,之后每点亮 1 个新的灯泡 $V$ 的花费,等于上一个被点亮的灯泡 ...
分类:
其他好文 时间:
2019-08-24 13:13:54
阅读次数:
84
1.二叉树的根节点,子节点,双亲,祖宗,孩子,层次编号,深度,有关兄弟关系?度为2的树不是二叉树。 二叉树的定义与特征;二叉树的顺序存储和链式存储;二叉树的遍历;线索二叉树的基本概念和构造。 2.倾斜二叉树与完全二叉树 3.前中后序遍历 前根序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树 中根 ...
分类:
其他好文 时间:
2019-08-20 23:57:48
阅读次数:
177
堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 根据根结点是否是最大值还是最小值和子结点的键值是否小于还是大于它的父结点可分为两种堆,如下: 1.大顶堆:每个结点的键 ...
分类:
编程语言 时间:
2019-08-18 23:39:47
阅读次数:
109
树的存储: 二叉树的存储: 1. 连续存储(顺序存储)【完全二叉树】,以数组实现 优点: 查找某个节点的父节点和子节点(包括判断有没有子节点和父节点) 缺点: 耗用内存空间过大 2. 链式存储: 一个节点包含三个部分:左子节点地址、数据域、右子节点地址 优点:耗内存小 一般树的存储: 由于计算机的内 ...
分类:
其他好文 时间:
2019-08-17 23:43:06
阅读次数:
145
二叉树的定义: 二叉树的重要性质: 二叉树的存储结构:用数组存储完全二叉树 二叉树的存储结构:用链表存储 ...
分类:
其他好文 时间:
2019-08-16 10:30:37
阅读次数:
70
一、堆的性质 结构性:用数组表示的完全二叉树 有序性:任意一结点的关键字是其子树所有结点的最大值(或最小值) 二、最大堆的操作 1、创建一个空的最大堆,堆从下标为1的地方开始存放(根结点下标为1) 2、最大堆的插入 首先,把要插入的结点放在数组的末尾,假设下标为H->size + 1 再将它与父结点 ...
分类:
其他好文 时间:
2019-08-14 21:41:50
阅读次数:
87
概述 堆是一颗完全二叉树。分为大根堆(父节点>=所有的子节点)和小根堆(父节点<=所有的子节点)。 插入、删除堆顶都是O(logN),查询最值是O(1)。 完全二叉树(Complete Binary Tree) 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数, ...
分类:
其他好文 时间:
2019-08-11 16:57:08
阅读次数:
97