二叉树 特点 每个结点最多有两棵子树 左子树和右子树是有顺序的,不能颠倒 即使树中某结点只有一棵子树,也要区分左还是右 五种基本形态 特殊二叉树 ——斜树 ——满二叉树 特点: ——完全二叉树 判断: 理解: 满二叉树一定是完全二叉树,完全二叉树不一定满 完全二叉树所有结点与同样深度的满二叉树,它们 ...
分类:
其他好文 时间:
2019-04-23 20:42:38
阅读次数:
162
二叉堆是一个数组,它可以被看成一个近似的完全二叉树,树上的每一个节点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是从左向右填充。二叉堆可以有两种形式:最大堆和最小堆,这里我主要讲解最大堆。最大堆的定义是:堆中某个节点的值总是不大于其父节点的值。 当我们用二叉堆表示上面的数组的时候,我们 ...
分类:
其他好文 时间:
2019-04-20 19:41:22
阅读次数:
168
一、动图演示 二、思路分析 先来了解下堆的相关概念:堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图: 同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子 该数组从逻辑 ...
分类:
编程语言 时间:
2019-04-20 15:40:51
阅读次数:
185
数据结构 堆 Heap是一种数据结构具有以下的特点: 1)完全二叉树; 2)heap中存储的值是偏序; Min heap: 父节点的值小于或等于子节点的值; Max heap: 父节点的值大于或等于子节点的值; 1.堆的存储: 一般都用数组来表示堆,i结点的父结点下标就为(i–1)/2。它的左右子结 ...
分类:
其他好文 时间:
2019-04-17 16:34:59
阅读次数:
142
用完全二叉树定义胜者树,前n-1个结点t[1]~t[n-1]为内部结点(胜者),后n个结点e[1]~e[n]是参赛者。 t数组存的是参赛者编号,即e[t[0]]才是最终胜者的值 ...
分类:
编程语言 时间:
2019-04-16 21:45:50
阅读次数:
243
线段树不是完全二叉树,是平衡二叉树 堆也是平衡二叉树 堆满二叉树: h层,一共有2^h-1个节点(大约是2^h) 最后一层(h-1层)有2^(h-1)个节点 最后一层的节点数大致等于前面所有层节点之和 如果区间有n个元素,数组表示需要4n的空间 不考虑添加元素,使用4n的静态空间即可 ...
分类:
编程语言 时间:
2019-04-16 21:41:08
阅读次数:
231
[toc] 一、定义 1.1 堆 ? 此处的堆,指数据结构中的堆。而不是内存中的那种内存堆,内存堆是基于数据结构的一种实现。堆的数据结构是一棵完全二叉树,它有如下特点:(具体参考下文链接) 堆是一棵完全二叉树 它总是最小值在根节点(或最大值在根节点) 它上一层比下一层小(大) 必定有快速删除根节点, ...
分类:
编程语言 时间:
2019-04-15 23:18:05
阅读次数:
246
树 树是n个结点的有限集合,若n=0,则该树为空树。该集合需要满足以下条件才能被称为树: 对于任意一个非空树, (1)有且只有一个根结点,也就是第一层只有一个结点。 (2)当结点数量大于1时,根节点以外的节点可分为互不相交的有限集合。每一个集合本身也是一个棵树,并称为根结点的子树。 下图所示是一个完 ...
分类:
其他好文 时间:
2019-04-09 22:16:10
阅读次数:
490
先上题面 链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805064676261888 首先,题目描述的很清楚,这是一个关于最小堆的问题。题目的意思就是根据插入顺序建一个最小堆,然后对给出的命令进行判断,输出T or ...
分类:
其他好文 时间:
2019-04-05 00:37:54
阅读次数:
367
一:树的定义 树是一种数据结构,由n(n>1)个有限结点组成一个有层次关系的集合。形状像一颗倒立的树而得名。分为:无序树,有序树,二叉树,满二叉树,完全二叉树,平衡二叉树(AVL),二叉查找树(二叉搜索树、BST),霍夫曼树,红黑树,B-tree(B-树或者B树),B+树,B*树等。 节点结构体(C ...
分类:
编程语言 时间:
2019-04-04 17:16:15
阅读次数:
249