一、堆 完全二叉树 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),是不稳定排序 堆排序中的堆有大顶堆、小顶堆两种。他们都是完全二叉树 将该堆按照排序放入列表 1. 大顶堆: 所有的父节点的值都比孩子节点大,叶子节点值最小。r ...
分类:
编程语言 时间:
2018-09-26 01:12:49
阅读次数:
245
树的基本概念 度 结点的度 该结点子树的个数 树的度 该树中结点的最大度数 叶子结点(终端结点) 终端结点 高度/深度/层数 该树的行数 二叉树 满二叉树 完全二叉树 最多最下面两层上结点的度数最下一层上的结点都集中在该层左边的位置上 二叉树性质 第i层上的结点数目最多为2i 1 (i ≥ 1 ...
分类:
其他好文 时间:
2018-09-23 22:30:12
阅读次数:
225
1、什么是堆 (1) 堆是具有以下性质的完全二叉树(那么,什么是完全二叉树呢?完全二叉树是一种除了最后一层之外的其他每一层都被完全填充,并且所有结点都保持向左对齐的树):每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图: 同时 ...
分类:
编程语言 时间:
2018-09-22 14:45:10
阅读次数:
151
一、定义 堆的定义 堆其实就是一棵完全二叉树(若设二叉树的深度为h,除第 h 层外,其它各层 (1~h 1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边), 定义为:具有n个元素的序列(h1,h2,...hn),当且仅当满足(hi =h2i,hi =h2i+1)或(hi=h2i, ...
分类:
其他好文 时间:
2018-09-17 16:18:02
阅读次数:
218
自由树 自由树是一个连通的,无回路的无向图。 令G=(V,E)为一个无向图。下面的表述是等价的。 1) G是自由树。 2) G中任意两个顶点由唯一一条简单路径得到。 3) G是连通的,但从E中去掉任何边后得到的图都是非连通的。 4) G是无回路的,且|E|=|V|-1。 5) G是连通的,且|E|= ...
分类:
其他好文 时间:
2018-09-14 23:18:08
阅读次数:
169
一、什么是堆? 堆:一种特殊的完全二叉树结构。 大根堆:一棵完全二叉树,满足任一节点都比其孩子节点大; 小根堆:一棵完全二叉树,满足任一节点都比其他孩子节点小。 ...
分类:
编程语言 时间:
2018-09-14 13:54:06
阅读次数:
149
Gym101158G Placing Medals on a Binary Tree 题意 一颗完全二叉树,给出n个点,xi的值表示深度为xi的点。问能否在当前状态下使得从根节点到该点的路径中不会遇到其他点。 思路 其实本题的意思就是 1/2,1/4,1/8等等等等,看剩下的点能不能减。然而由于k值 ...
分类:
其他好文 时间:
2018-09-12 22:07:15
阅读次数:
260
传送门 这是一道神奇的树形DP,对它还是不需要建树,而且完全可以一边读入,一边DP出结果…… 首先我们看题目描述很显然是一棵二叉树,而且还是完全二叉树。(没啥卵用) 令dp[i][j]表示在第i个节点选取花费j时间所能获取的最大画数。 之后因为题目的输入是递归给出的……所以我们直接去建图难度很大,不 ...
分类:
其他好文 时间:
2018-09-12 21:12:36
阅读次数:
202
最近写了很多笔试题,发现关于二叉树的好多概念还是没有完全理清,总结一下; 这是百度百科给的几种二叉树的类型: (1)空二叉树——如图(a); (2)只有一个根结点的二叉树——如图(b); (3)只有左子树——如图(c); (4)只有右子树——如图(d); (5)完全二叉树——如图(e) 然后还有一点 ...
分类:
其他好文 时间:
2018-09-12 13:54:07
阅读次数:
196
完全二叉树是从左边开始一点点填充节点的,因此需要计算所有的节点的个数。 则分别从左边和右边来进行传递的,当左右是完全二叉树的时候,其节点个数就是pow(2,h)-1。 ...
分类:
其他好文 时间:
2018-09-12 01:07:46
阅读次数:
135