前文传送门: 「一本正经的聊数据结构(1):时间复杂度」 「一本正经的聊数据结构(2):数组与向量」 「一本正经的聊数据结构(3):栈和队列」 「一本正经的聊数据结构(4):树」 「一本正经的聊数据结构(5):二叉树的存储结构与遍历」 基础知识 感谢某位在后台留言的同学,让我想起来我还有这个没写完的 ...
分类:
其他好文 时间:
2020-05-31 11:22:44
阅读次数:
93
1、第五章主要学习了与树相关的知识,从二叉树拓展到一棵普通的树,再从一棵普通的树拓展到哈夫曼树,再从树拓展到森林的概念。5-1节学习了树和二叉树的定义,对节点,根节点,叶子结点,深度,度等概念进行了初步的了解。5-4节了解了与二叉树相关的一些性质,其中引出了完全二叉树与满二叉树的概念,从这一节开始也 ...
分类:
其他好文 时间:
2020-05-30 21:49:33
阅读次数:
63
第五章学习了树与二叉树等相关内容 具体有如何去遍历一颗二叉树,分为层次遍历,先序遍历,中序遍历和后序遍历。其次还有最优的哈夫曼树,怎么去构造一棵哈夫曼树,从低往上构造等等。以及树的构造中会用到的链式存储及顺序存储结构还有借助数组来解决相关问题,定义树时采用的是递归的方式。 #include<iost ...
分类:
其他好文 时间:
2020-05-30 16:05:52
阅读次数:
78
一、本章学习内容小结:本章学习了新的数据结构--树,与前面的学习不同的是,树是一种非线性结构,树只有一个根结点,其子树本身也是一棵树,所以其定义是递归定义。本章还学习了二叉树和哈夫曼树。 二叉树:结点的度不超过2的树,其中完全二叉树是每个结点都与深度为k的满二叉树编号相同。遍历二叉树是对数的基本操作 ...
分类:
其他好文 时间:
2020-05-24 13:21:19
阅读次数:
69
哈夫曼树(最优二叉树) 其目的: 找出存放一串字符需要的最少的二进制编码 构造方法: 1.得到每种字符出现的频率或者概率,即权值,构成频率表 2.找出频率最小的两个,小的在左边,大的在右边,组成二叉树。父节点为两者的和(不计入WPL计算),频率表更新(删除这两个数,同时加入两数的和) 3.重复2. ...
分类:
其他好文 时间:
2020-05-23 11:38:12
阅读次数:
89
学习进度表 周数 学习内容 新增代码 知识总结 第9周 队列的定义与存储 50 知道了队列的定义 第10周 树的基本概念 二叉树的遍历 60 了解了二叉树的遍历方式 及代码运用 第11周 哈夫曼树编码 0 哈夫曼树编码构造过程 第12周 图的基本概念与存储 65 图的存储结构及代码运用 ...
分类:
其他好文 时间:
2020-05-17 19:12:50
阅读次数:
47
题目链接:http://class.51nod.com/Challenge/Problem.html#problemId=1117 一、题目描述 一位老木匠需要将一根长的木棒切成N段。每段的长度分别为L1,L2,......,LN(1 <= L1,L2,…,LN <= 1000,且均为整数)个长度单 ...
分类:
其他好文 时间:
2020-05-17 17:35:19
阅读次数:
63
哈夫曼树是由n个带权叶子结点构成的所有二叉树中带权路径最短的二叉树。 结点间的路径长度:树中一个结点到另一个结点之间分支数目称为这对结点之间的路径长度。 树的路径长度PL:树的根结点到树中每一结点的路径长度之和。 带权路径长度带权路径长度:从根结点到某结点的路径长度与从根结点到某结点的路径长度与该结 ...
分类:
其他好文 时间:
2020-05-16 10:44:21
阅读次数:
48
问题描述: 已知字符出现的概率,如何设计为这些字符设计一定长度的位串,使得位串平均长度最短. 前缀码是指,对字符集进行编码时,要求字符集中任一字符的编码都不是其它字符的编码的前缀,而最优前缀码是指平均码长最小的前缀编码。 问题解析: 数据结构:二叉树 哈夫曼树的性质: 1:一共有2n-1个节点,其中 ...
分类:
编程语言 时间:
2020-05-13 09:47:54
阅读次数:
99
题目 思路 通过最小堆模拟哈夫曼树,权值的计算就是删除堆中的两个最小元素,相加,插入最小堆。 平均码长=所有结点的编码总长度/所有结点的总频次 存储的名字是没有用处的,用主函数数组存储就行。 代码: #include <malloc.h> #include <stdio.h> #include <s ...
分类:
其他好文 时间:
2020-04-29 20:25:35
阅读次数:
146