电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

哈夫曼树实验报告

哈夫曼树实验报告_第1页
1/13
哈夫曼树实验报告_第2页
2/13
哈夫曼树实验报告_第3页
3/13
2011-2012 学年第一学期 数据结构课内实验报告 哈夫曼树 专业:电子信息工程 姓名: 邓宏才 学号: U 201113233 指导老师: 刘应状 实验题目 1 、 实验目的: a. 随机生成数据并统计 b. 创建哈夫曼树; c. 哈夫曼编码 d. 哈夫曼译码; 2 、 实验内容: a. 随机生成数据并统计 b. 创建哈夫曼树; c. 哈夫曼编码 d. 哈夫曼译码; 3 、 数据结构及算法思想: 创建哈夫曼树的描述: 数据结构:数据的逻辑结构是树状结构;采用静态的三叉链表存放; 算法思想:1.先把三叉链表中1-N个元素进行初始化,存放叶子节点,他们都没有孩子和双亲。2.再初始化后 n-1个非叶子节点元素。3.从当前森林中(在森林中树的根节点的双亲为 0)选择两棵根的权值最小的树;删除合并是将选到的两棵树的根权和存入数组当前最前面的空闲元素中,并置入相应的双亲与孩子的位置。4.重复上述步骤直到森林中只含有一棵二叉树为止; 哈夫曼树编码的描述: 数据结构:数据的逻辑结构是树状结构;采用静态的三叉链表存放; 算法思想:1 .申请存储哈夫曼编码串的头指针数组,申请一个字符型指针,用来存放临时的编码串;2 .从叶子节点开始向上倒退,若其为它双亲节点的左孩子则编码标 0 ,否则标 1 ;直到根节点为止,最后把临时存储编码复制到对应的指针数组所指向的内存中;3 .重复上述步骤,直到所有的叶子节点都被编码完; 哈夫曼树译码的描述: 数据结构:数据的逻辑结构是树状结构;采用静态的三叉链表存放; 算法思想:1 .从根结点开始向下递推,若其编码当前的数值为 0 ,则到该节点的左孩子, 否则转到其右孩子; 重复上述步骤直到该编码中全部访问完,则树中对应的叶子节点则为所求2 .依据上述步骤,对编码数组中所有编码全部进行译码; 4 、 模块划分: 1 .选择两个权值最小的结点; 2 .创建哈夫曼树; 3 .打印哈夫曼树 4 .哈夫曼编码 5 .哈夫曼译码 5 、 详细设计及运行结果: 1 . 生成随机数并保存至文件: 2.哈夫曼编码: 3 .哈夫曼译码: 6 、 调试情况,设计技巧及体会 实验中对数据变量的修改有一部分没有太注意,没有传引用,导致实验结果和预期不对,断点调试后才找出问题所在。 通过这次试验,自我感觉收获很深,无论是对于编程本身还是对集成开发环境的使用上,还有对知识掌握的熟练程度上,都有了很大的提高。对于哈夫曼树的算法有了很深的印象。 流程图 开始生成随机...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

哈夫曼树实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部