数据结构课程设计的.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计的

成绩 课程设计说明书(论文) 题 目 哈夫曼编码问题的设计和实现 课 程 名 称 数据结构课程设计 院(系、部、中心) 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 设计起止时间:2008 年6月 2日至 2008 年 6月 6 日 目录 1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2 需求分析 2 2.1 程序的基本功能 2 2.2 输入值、输出值以及输入输出形式 2 2.3 各个模块的功能要求 3 3 概要设计 4 3.1 所需的ADT,每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义) 4 3.2 主程序流程以及模块调用关系 4 3.3 各个模块的算法设计说明 4 4 详细设计 7 4.1 数据类型 7 4.2 函数调用 8 5 各个算法实现的源程序 8 6 调试分析 11 7 使用说明 12 8 测试结果 12 9 源程序 12 问题描述 题目内容 哈夫曼编码问题的设计和实现 输入一个英文字符串,对该字符串中各字符个数进行统计取得各字符的出现次数;以其出现次数作为关键字建立哈夫曼树并进行编码,最后输出各个字符对应的码值。 基本要求 要求:设计存储结构、基本算法(主要采用程序流程图体现);完成基本算法的实现代码;设计测试输入数据对程序进行测试,分析输出结果数据、算法的时间复杂度分析,如有改进算法则提出算法的改进方法。 测试数据 测试数据三组: AAAABBBCCD(判断连续的字符串是否可行) AABBAABCDC(判断间段的字符串是否可行) AAAA BBBCCD(判断含空格的字符串是否可行) 需求分析 程序的基本功能 该程序大体上有两个功能: 输入任何一个字符串后,该程序能统计不同字符串的个数,并以不同字符串的个数作为权值。 已知不同字母的权值,以该权值作为叶结点,构造一棵带权路径最小的树,对该树从叶结点到根结点路径分支遍历,经过一个分支就得到一位夫曼编码值。(规定哈夫曼树中的左分支为0,右分支为1,则从根结点到每个叶结点所经过的分支对应的0和1组成的序列便为该结点对应字符的编码) 输入值、输出值以及输入输出形式 输入值 :AAAABBBCCD 输出值 :W =4 C=0 W=3 C=10 W=2 C=111 W=1 C=110 输入值 :AABBAABCDC 输出值 :W=4 C=0 W=3 C=10 W=2 C=111 W=1 C=110 输入值 :AAAA BBBCCD 输出值 :W=4 C=11 W=1 C=010 W=3 C=10 W=2 C=00 W=1 C=011 各个模块的功能要求 统计模块 任意输入一个字符串,不论字母是否相联,字符串中是否含空格都能统计出不同字母的个数。 建立哈夫曼树模块 以统计的字符串个数作为权值,利用仿真存储结构,建立带权路径最小的树。 其中对结点的存储需要六个域,分别是 weight 域,flag域, parent域,leftChild 域,rightChild域。weight 域是对权值的存放,flag 域是一个标志域,flag=0时表示该结点尚未加入到哈夫曼树中,flag=1时表示该结点已加入到哈夫曼树中。 哈夫曼编码模块 从哈夫曼树的叶结点到根结点路径分支逐步遍历,每经过一个分支就得到一位哈夫曼编码。哈夫曼编码也利用仿真存储结构。 主函数模块 从屏幕上输入字符串,调用函数,输出每个字母的权值与编码。 概要设计 所需的ADT,每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义) 抽

文档评论(0)

ahuihuang1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档