搬运自我的CSDN https://blog.csdn.net/u013213111/article/details/90343879 也就是一棵完全二叉树。堆顶最大则为大根堆,堆顶最小则为小根堆,这里实现的是小根堆。 1.定义 用一个数组来存储数据。 2.新建一个二叉堆 给二叉堆分配空间,给存储数 ...
分类:
其他好文 时间:
2019-06-01 21:38:23
阅读次数:
128
1、算法介绍 1.1、数据结构——堆 堆是一种近似完全二叉树的数据结构,其主要性质是:节点值大于等于(小于等于)其子节点的值。 大顶堆:节点值大于等于其子节点的值,用于升序排序。 小顶堆:节点值小于等于其子节点的值,用于降序排序。 1.2、堆的构建 1.3、算法步骤 (1)未排序序列构建堆 (2)堆 ...
分类:
编程语言 时间:
2019-05-29 14:20:29
阅读次数:
116
1.种类及概念: 二叉树是每个结点最多有两个子树的树结构。 完全二叉树:除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点。 满二叉树:每一层上的节点数都是最大节点数,深度为k,且有2^k-1个节点。 平衡二叉树:又被称为AVL树(区别于AVL算法),它是一棵二叉排 ...
分类:
其他好文 时间:
2019-05-25 09:58:26
阅读次数:
160
此文章同步发布在CSDN上:https://blog.csdn.net/weixin_44385565/article/details/90317830 1110 Complete Binary Tree (25 分) 此文章同步发布在CSDN上:https://blog.csdn.net/weix ...
分类:
其他好文 时间:
2019-05-18 18:54:44
阅读次数:
94
#include<stdio.h> int tree[513],n;//定义全局变量,在遍历的时候可以使用 void PreOrder(int i)//递归 { if(i>n||tree[i]==0) return; printf(" %d",tree[i]); PreOrder(2*i); Pre ...
分类:
其他好文 时间:
2019-05-18 11:12:07
阅读次数:
191
"[ZJOI2010]排列计数" 求由$1 n$组成的数列$\{a_i\}$中,满足$a_i a_{i/2}(i\neq 1)$的数列方案数$mod\ p$,$1 ≤n ≤ 10^6, p≤ 10^9$。 解 显然此为完全二叉树压维模型,即父节点点权$a_i$的子节点点权为$a_{i/2},a_{i ...
分类:
其他好文 时间:
2019-05-14 14:59:49
阅读次数:
117
堆排序很重要,但是更重要的是堆这个结构 堆结构:实际上是一棵完全二叉树 一个数组可以根据父结点、左子结点、右子结点的关系,脑补出一棵完全二叉树 算法1:一个数组变为大顶堆 heapInsert() 数组:2、1、3、6、0、4 (1)只有2的时候 (2) 2、1【认为完全二叉树的范围是0~1的,超过... ...
分类:
编程语言 时间:
2019-05-07 22:56:46
阅读次数:
174
本章学习了树和森林。因为之前对汉罗塔问题和费波纳兹数列问题理解不够透彻,自己对于递归思路不够清晰,再加上树的基本操作依赖于递归,所以感觉自己这一章学起来比较困难。这一章难点比较多,第一是新鲜的术语比较多,比如度,非终端结点,完全二叉树等等;第二是树的种类本身就比较多,树与树之间的基本操作遇到的问题可 ...
分类:
其他好文 时间:
2019-05-05 01:17:20
阅读次数:
168
第五章——树(生命不息,种树不止) 无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树; 有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树; 二叉树:每个节点最多含有两个子树的树称为二叉树; 完全二叉树 满二叉树 霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优 ...
分类:
其他好文 时间:
2019-05-05 01:16:57
阅读次数:
137
树的基本概念: 树的度—— 树中最大的结点度数 双亲—— 孩子结点的上层结点叫该结点的双亲 兄弟—— 同一双亲的孩子之间互成为兄弟 祖先—— 结点的祖先是从根到该结点所经分支上的所有结点 子孙—— 以某结点为根的子树中的任一结点都成为该结点的子孙 结点的层次—— 从根结点算起,根为第一层,它的孩子为 ...
分类:
其他好文 时间:
2019-05-04 18:41:51
阅读次数:
139