[TOC] 左偏树整理 整理自IOI2005 国家集训队论文 黄源河 的《左 偏 树 的 特 点 及 其 应 用》 引言 ps:优先队列的实现方式是二叉堆(完全二叉树,父亲的值大于左右两个儿子的值) 针对一些优先队列(二叉堆)合并问题的解法. 优先队列(二叉堆)可以支持三种操作 查询最大(小)值 ( ...
分类:
其他好文 时间:
2018-11-27 19:29:22
阅读次数:
168
性质 在二叉树的第i层上最多有2i-1个结点。 深度为k的二叉树至多有2k-1个结点。 对于任意一棵二叉树,如果其叶节点数为n0,度为2的结点数为n2,则一定满足n0 = n2 + 1。 具有n个结点的完全二叉树的深度为floor(log2n + 1)。 对于任意一棵具有n个结点的完全二叉树,对于任 ...
分类:
其他好文 时间:
2018-11-25 14:47:56
阅读次数:
265
1、(二叉)堆可以使用一个数组实现,在逻辑上,我们可以将这个数组实现成一个完全二叉树。因为完全二叉树的父节点和孩子节点之间存在关系。例子如下: 图a中就是一棵完全二叉树,并且这个完全二叉树是一个二叉最大堆(max堆)结构。因为该完全二叉树所有节点都满足堆序性。图b是该最大堆在内存上的存储形式,即以数 ...
分类:
编程语言 时间:
2018-11-23 16:09:17
阅读次数:
175
我们知道,二叉查找树能够支持多种动态集合操作,因此在程序设计竞赛中,二叉查找树起着非常重要的作用,它可以用来表示有序集合,建立索引或优先队列等。作用于二叉树的基本操作时间是与树的高度成正比的:对于一颗含n个节点的二叉查找树,如果呈完全二叉树结构,则这些操作的最坏情况的运行时间为O(log2 n); ...
分类:
其他好文 时间:
2018-11-21 22:22:46
阅读次数:
253
树 | :由 一个根结点 和 N个子结点 及 连接线 构成,任意结点间不构成回路 | 二叉树 | :树的一种,且任意结点最多只能有两个子结点 | | 完美二叉树:满足h层二叉树的最大结点树 | | 完全二叉树:在完美二叉树的基础上,做减法。最下一层从右到左依次去掉多个结点。【1、必须依次去掉 2、全 ...
分类:
其他好文 时间:
2018-11-21 12:21:52
阅读次数:
172
20172307 2018 2019 1 《程序设计与数据结构》第9周学习总结 教材学习内容总结 + 堆是一棵完全二叉树,其中的每一结点都小于或等于它的两个孩子。 + 最小堆将其最小元素存储在该二叉树的根处,且其根的两个孩子同样也是最小堆。 + addElement方法将给定的Comparable元 ...
分类:
其他好文 时间:
2018-11-18 22:33:45
阅读次数:
201
如果是1 n, 那么上述公式每个i加1即可。 ...
分类:
编程语言 时间:
2018-11-18 15:08:05
阅读次数:
166
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子 ...
分类:
编程语言 时间:
2018-11-17 19:05:39
阅读次数:
140
20172315 2018 2019 1 《程序设计与数据结构》第八周学习总结 教材学习内容总结 + 堆是一棵完全二叉树,其中的每一结点都小于或等于它的两个孩子。 + 一个堆也可以是最大堆(maxheap),其中的结点大于或等于它的左右孩子。 + 最小堆将其最小元素存储在该二又树的根处,且其根的两个 ...
分类:
其他好文 时间:
2018-11-11 00:03:56
阅读次数:
215
20172319 2018.11.04 11.11 《程序设计与数据结构》第8周学习总结 目录 "教材学习内容总结" "教材学习中的问题和解决过程" "代码调试中的问题和解决过程" "代码托管" "上周考试错题总结" "结对及互评" "学习进度条" "参考资料" 教材学习内容总结 第十二章 优先队列 ...
分类:
其他好文 时间:
2018-11-10 22:42:28
阅读次数:
290