1.二分搜索树特点:每个节点的键值大于左孩子; 每个节点的键值小于右孩子;以左右孩子为根的子树仍为二分搜索树 ;不是完全二叉树2.优势:高效,不仅可以查找数据;还可以高效的插入,删除数据-动态维护数据3.二分搜索树的局限性: 1.二分搜索树的排列不同,对应的时间复杂度不同:最差可以退化为链表的形式O ...
分类:
其他好文 时间:
2018-12-05 12:18:52
阅读次数:
185
堆和堆排序 如何理解堆 堆是一种特殊的树,只要满足以下两点,这个树就是一个堆。 ①完全二叉树,完全二叉树要求除了最后一层,其他层的节点个数都是满的,最后一层的节点都靠左排列。 ②树中每一个结点的值都必须大于等于(或小于等于)其子树中每个节点的值。大于等于的情况称为大顶堆,小于等于的情况称为小顶堆。 ...
分类:
编程语言 时间:
2018-12-02 18:32:49
阅读次数:
200
用二叉树实现堆: 完全二叉树: 用数组存储二叉堆: ...
分类:
其他好文 时间:
2018-12-02 12:25:59
阅读次数:
217
题解: 并不需要什么算法 首先我们随便画一画就会发现 能画出一颗满二叉树 然后要满足每个点从上往下的路径和都相同(%m意义下) 一个点上可能对应了多个点 然后这样我们可以暴力dp $2^k*m^2+nm$的 应该过不了 我们注意到一个点本质不同的点只能有m个 所以对每个点开个数组记录一下为x的有几个 ...
分类:
其他好文 时间:
2018-11-30 15:35:42
阅读次数:
158
[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
一、普通树 树中的节点是一对多的关系。具有以下特点: 1. n>0时,根节点是唯一的,不可能存在多个根节点。 2. 每个节点有零个至多个子节点;除了根节点外,每个节点有且仅有一个父节点。根节点没有父节点。 相关概念: 参考:https://www.cnblogs.com/QG-whz/p/51686 ...
分类:
其他好文 时间:
2018-11-19 16:17:33
阅读次数:
192