首先说一说三种特殊的二叉树,第一种满二叉树,也就是每一个内部节点(非页节点)都有两个孩子;第二种完全二叉树,即所有的叶子节点从左到右毫无间隙的填充了h层;第三种完全二叉树,即把叶子节点去除后的叶子节点从左到右毫无间隙的填充了h-层。 二叉树的节点类似于列表,不过他包含三个指针,一个指向数据,一个指向 ...
分类:
其他好文 时间:
2018-11-03 14:17:09
阅读次数:
145
堆是一个完全二叉树(对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树),常用来利用树的性质进行排序,即堆排序。 排序过程: 0.输入一个集合R[0,n],先把该集合元素构成树(分层,第一个元素在第一层,依次按完全二叉树性质放 ...
分类:
编程语言 时间:
2018-11-01 00:54:27
阅读次数:
211
树、堆 树: 1、一课树中的任意两个结点有仅有唯一的一条路径连通。 2、一棵树如果有n个结点,那么它一定恰好有n-1条边。 3、在一棵树中加一条边将会构造一个回路。 满二叉树:二叉树所有的叶结点都有同样的深度。 深度为:n,结点数:2**n - 1 完全二叉树 如果一棵二叉树除了最右边位置上有一个或 ...
分类:
其他好文 时间:
2018-10-20 10:38:30
阅读次数:
146
前言:前面了解了树的概念和基本的存储结构类型及树的分类,而在树中应用最广泛的种类是二叉树 一、简介 在树型结构中,如果每个父节点只有两个子节点,那么这样的树被称为二叉树(Binary tree)。其中,一个父结点的两个字节点分别叫做“左子节点”和“右子节点”。不过也不是所有父节点都有两个子节点,只有 ...
分类:
编程语言 时间:
2018-09-28 12:48:04
阅读次数:
196
堆是完全二叉树 子树是不相交的 度 节点拥有子树的个数 满二叉树: 每个节点上都有子节点(除了叶子节点) 完全二叉树: 叶子结点在倒数第一层和第二层,最下层的叶子结点集中在树的左部 ,在右边的话,左子树不能为空 二叉搜索树: 左边子节点小于父节点,右边子节点大于父节点 堆: 也叫队列,在堆尾插入,在 ...
分类:
编程语言 时间:
2018-09-27 01:49:59
阅读次数:
162
树的基本概念 度 结点的度 该结点子树的个数 树的度 该树中结点的最大度数 叶子结点(终端结点) 终端结点 高度/深度/层数 该树的行数 二叉树 满二叉树 完全二叉树 最多最下面两层上结点的度数最下一层上的结点都集中在该层左边的位置上 二叉树性质 第i层上的结点数目最多为2i 1 (i ≥ 1 ...
分类:
其他好文 时间:
2018-09-23 22:30:12
阅读次数:
225
自由树 自由树是一个连通的,无回路的无向图。 令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
建堆的复杂度先考虑满二叉树,和计算完全二叉树的建堆复杂度一样。 对满二叉树而言,第 $i$ 层(根为第 $0$ 层)有 $2^i$ 个节点。 由于建堆过程自底向上,以交换作为主要操作,因此第i层任意节点在最不利情况下,需要经过 $(n i)$ 次交换操作才能完成以该节点为堆根节点的建堆过程。 因此, ...
分类:
其他好文 时间:
2018-08-31 14:04:48
阅读次数:
181
时间复杂度 访问插入以及O(1)O(n)容易混淆地方 满二叉树结点数=2*深度-1,如下图:2*4-1 =7 ...
分类:
其他好文 时间:
2018-08-29 14:41:00
阅读次数:
88
二叉树:每个结点至多有两个子树 满二叉树:每一层的结点个数都是最大结点数 完全二叉树:叶子节点在最后两层;对于任一结点,左子树的深度比右子树深度大1或者相等 性质: 二叉树:第i层,至多有2^(i-1)个结点 二叉树:深度为k的二叉树,至多有(2^k)-1个结点 满二叉树:深度为k的满二叉树的结点个 ...
分类:
其他好文 时间:
2018-08-27 23:17:05
阅读次数:
200