1、定义:将优先级最高的元素先出队列的队列。 2、基本操作:入队(插入),出队(删除优先级最高的元素,代码中以元素值最小为优先级最高),构建堆, 修改元素等。 3、二叉堆:父节点小于子节点的完全二叉树。 性质: (1)结构性:完全二叉树结构 (2)堆序性:父节点的值小于子节点的值 3、代码实现: ( ...
分类:
其他好文 时间:
2019-01-27 21:33:47
阅读次数:
209
1064 Complete Binary Search Tree (30 分) A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The lef ...
分类:
其他好文 时间:
2019-01-23 13:52:10
阅读次数:
197
在一些计数问题中,线段树用于维护值域(一段权值范围),这样的线段树也称为权值线段树。为了降低空间复杂度,我们可以不建出整棵线段树的结构,而是在最初只建立一个根节点,代表整个区间,当需要访问线段树的某棵子树(某个子区间)时,再建立代表这个子区间的节点。采用这种方法维护的线段树称为动态开点的线段树。动态 ...
分类:
其他好文 时间:
2019-01-23 01:27:22
阅读次数:
484
代码和注释写完了但是图没画QAQ 简单介绍 堆的本质是一个完全二叉树,除了最下面一层以外,其他的每层(假设第$n$层)都有$2^n$个结点。节点存的值每层都是递增或者递减的。递增的话就是大顶堆,递减的话就是小顶堆。那么对于大顶堆来说,每个节点的儿子节点上的值都要小于等于该节点 ...
分类:
其他好文 时间:
2019-01-23 01:24:45
阅读次数:
180
优先队列 集合性质的数据类型离不开插入删除这两操作,主要区别就在于删除的时候删哪个,像栈删最晚插入的,队列删最早插入的,随机队列就随便删,而优先队列删除当前集合里最大(或最小)的元素。优先队列有很多应用,举几个见过的像:数据压缩的哈夫曼编码、图搜索中的 Dijkstra 算法和 Prim 算法、人工 ...
分类:
其他好文 时间:
2019-01-22 18:32:47
阅读次数:
227
duxing201606的原味鸡树 题意: 给定一颗有n(n<=1e9)个节点的完全二叉树,1e5次询问,问某个节点有几个子节点。 思路: 自己在月赛上没有思路,问了zfq才知道。 设两个指标,L、R,因为是范围,所以每次L向左孩子一直下去,R向右孩子一直下去,每次下探答案就要加上2的i次,L~R间 ...
分类:
其他好文 时间:
2019-01-20 00:12:21
阅读次数:
214
二叉树是最主要最主要的的树形结构. 二叉树子树有左右之分. 空,根,左子树,右子树,左右子树. 完全二叉树是非常重要的二叉树 分支少,最多两个孩子节点. 数组存储,完全二叉树.比较方便 ...
分类:
其他好文 时间:
2019-01-18 23:09:53
阅读次数:
196
题目描述 给出一个完全二叉树,求出该树的节点个数。 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例: 输入: 1 / \ 2 3 / ...
分类:
其他好文 时间:
2019-01-15 18:32:30
阅读次数:
281
题目描述 如上图所示,由正整数 1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点 ...
分类:
其他好文 时间:
2019-01-14 23:14:43
阅读次数:
261
归并排序思想 归并排序仍然是利用完全二叉树实现,它是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。 基本过程:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1 ...
分类:
编程语言 时间:
2019-01-12 18:04:36
阅读次数:
209