什么是哈夫曼树 当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。在构建哈弗曼树时,要使树的带权路径长度最小,只需要遵循一个原则,那就是:权重越大的结点离树根越近。在图 1 中,因为结 ...
分类:
其他好文 时间:
2019-05-10 23:29:27
阅读次数:
146
题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果 ...
分类:
移动开发 时间:
2019-05-08 21:47:05
阅读次数:
146
1. B树 1.1 B树的定义 这里的B树,也就是英文中的B-Tree,一个 m 阶的B树满足以下条件: 1.每个结点至多拥有m棵子树; 2.根结点至少拥有两颗子树(存在子树的情况下),根结点至少有一个关键字; 3.除了根结点以外,其余每个分支结点至少拥有 m/2 棵子树; 4.所有的叶结点都在同一 ...
分类:
其他好文 时间:
2019-05-05 11:37:59
阅读次数:
149
1.一看到这道题,就知道要用树的结构,而且我们这章学的也是树。 2.根据题目的样例试图画出树的形状 3.下一步确定树的存储结构,我们可以用邻接矩阵和结构体数组来存储;其中邻接矩阵可以很好的遍历每个门,但在这道题目中每扇门后通往的门的数量可能并不多,导致实际上出现的可能是稀疏矩阵,需要浪费大量空间。所 ...
分类:
其他好文 时间:
2019-05-05 01:21:04
阅读次数:
154
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。 接下来M行 ...
分类:
其他好文 时间:
2019-04-22 00:24:59
阅读次数:
155
模板1: 这里也可以应用一个简单的启发式策略——按秩合并。该方法使用秩来表示树高度的上界,在合并时,总是将具有较小秩的树根指向具有较大秩的树根。简单的说,就是总是将比较矮的树作为子树,添加到较高的树中。简单的说,就是总是将比较矮的树作为子树,添加到较高的树中。为了保存秩,需要额外使用一个与 pare ...
分类:
其他好文 时间:
2019-04-18 15:13:26
阅读次数:
179
题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。 给定需要保留的树枝数量,求出最多能留住多少苹果。 输入输出格式 输入格式: 第 ...
分类:
移动开发 时间:
2019-04-10 18:03:58
阅读次数:
272
[TOC] 23、二叉搜索树的后序遍历序列 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 后序遍历:左子树 右子树 根节点 思路: 对于后序遍历,其最后一个元素是根节点。因此对于序列S,最后一个 ...
分类:
其他好文 时间:
2019-04-06 17:10:35
阅读次数:
105
要求:1.每周至少做一个 leetcode 的算法题 2.阅读并点评至少一篇英文技术文章 3.学习至少一个技术技巧 4.分享一篇有观点和思考的技术文章 1.每周至少做一个 leetcode 的算法题 算法题:20.有效括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判 ...
分类:
其他好文 时间:
2019-03-31 23:24:44
阅读次数:
304
给你前序遍历中序遍历,如何构造出一个二叉树? 思路: 1. 明确前序遍历与中序遍历的顺序 前序遍历:根→左子树→右子树 中序遍历:左子树→根→右子树 2. 根据前序遍历可确认根节点,在中序遍历中根节点是一个分水岭,可由根节点分辨出左右子树 3. 对左右子树分别重复第2步,可以找出左右子树的子树,也就 ...
分类:
编程语言 时间:
2019-03-29 14:36:11
阅读次数:
123