实现最优二叉树的构造;在此基础上完成哈夫曼编码器与译码器。 假设报文中只会出现如下表所示的字符: 字符 A B C D E F G H I J K L M N 频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20 57 字符 O P Q R S T U V W X Y Z , . 频度 63 15 1 48 51 80 23 8 18 1 16 1 6 2 要求完成的系统应具备如下的功能: 1.初始化。从终端(文件)读入字符集的数据信息,。建立哈夫曼树。 2.编码:利用已建好的哈夫曼树对明文文件进行编码,并存入目标文件(哈夫曼码文件)。 3.译码:利用已建好的哈夫曼树对目标文件(哈夫曼码文件)进行编码,并存入指定的明文文件。 4.输出哈夫曼编码文件:输出每一个字符的哈夫曼编码。
上传时间: 2014-11-23
上传用户:shanml
给定一棵有n 个结点的二叉树,结点的编号为1,2,…,n。已知二叉树结点编号的后 序和中序列表,试设计一个算法,确定该二叉树结点编号的前序列表。
标签: 二叉树
上传时间: 2013-12-19
上传用户:wpwpwlxwlx
输入一个有n个叶结点的权植构造一棵哈夫曼树:(例如:n=8,权植为 5 29 7 8 14 23 3 11)根据哈夫曼树构造哈夫曼编码,用指向字符串的指针数组来存放,用叶子到树根逆向求每个结点的哈夫曼编码.
上传时间: 2016-08-13
上传用户:SimonQQ
哈夫曼树算法 根据给定的n个权值{w1,w2,……wn},构造n棵只有根结点的二叉树,令起权值为wj 在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和 在森林中删除这两棵树,同时将新得到的二叉树加入森林中 重复上述两步,直到只含一棵树为止,这棵树即哈夫曼树
上传时间: 2014-01-13
上传用户:wpt
给一棵结点编号为1, 2, …, n 的二叉树的前序遍历序列和中序遍历序列,输 出后序遍历序列
上传时间: 2016-12-24
上传用户:libenshu01
实现N叉树的建立、节点插入、删除、查找等。在devC环境下编译运行正常。
上传时间: 2013-12-25
上传用户:笨小孩
树是由n(n≥0)个结点组成的有限集合T。n=0的树称为空树;对n>0的树,有:(1)仅有一个特殊的结点称为根结点,根结点没有前驱结点;(2)当n>1时,除根结点外其余的结点分为m(m>0)个互不相交的有限集合T1,T2,…,Tm,其中每个集合Ti本身又是一棵结构和树类似的子树。
上传时间: 2014-01-01
上传用户:lgnf
问题描述: 给定一棵有n 个结点的二叉树,结点的编号为1,2,…,n。已知二叉树结点编号的后序和中序列表,试设计一个算法,确定该二叉树结点编号的前序列表。 实验任务: 对于给定的二叉树结点编号的后序和中序列表,计算二叉树结点编号的前序列表。
标签: 二叉树
上传时间: 2017-08-17
上传用户:huql11633
0 / 1背包问题是一个N P-复杂问题,为了解决该问题,,将用回溯算法解决该问题。既然想选择一个对象的子集,将它们装入背包,以便获得的收益最大,则解空间应组织成子集树的形状(如图1 6 - 2所示)。该回溯算法与4 . 2节的装载问题很类似。首先形成一个递归算法,去找到可获得的最大收益。然后,对该算法加以改进,形成代码。改进后的代码可找到获得最大收益时包含在背包中的对象的集合。
标签: 背包问题
上传时间: 2013-11-25
上传用户:helmos
广义表是线性表的推广。广义表是n个元素的有限序列,元素可以是原子或一个广义表,记为LS。 若元素是广义表称它为LS的子表。若广义表非空,则第一个元素称表头,其余元素称表尾。 表的深度是指表展开后所含括号的层数。 把与树对应的广义表称为纯表,它限制了表中成分的共享和递归; 允许结点共享的表称为再入表; 允许递归的表称为递归表; 相互关系:线性表∈纯表∈再入表∈递归表; 广义表的特殊运算:1)取表头head(LS);2)取表尾tail(LS)
上传时间: 2014-01-17
上传用户:2467478207