实验五树结构及其应用.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五 树结构及其应用 本实验根据树结构的非线性特点,将操作集中在遍历操作上,因为遍历操作是其他众多操作的基 础。本实验还希望达到使学生熟悉各种存储结构的特征,以及掌握如何应用树解决具体问题(即原理 与应用的结合)等目的。 1.二叉树的建立与遍历(验证性实验) 【问题描述】 建立一棵二叉树,并对其进行遍历(先序、中序和后序),打印输出遍历结果。 【基本要 】 从键盘接受输入(先序序列),以二叉链表作为存储结构,建立二叉树(以先序来建立),并采用 递归算法对其进行遍历(先序、中序和后序),将遍历结果打印输出。 【测试数据】 ABC DE G F (其中表示空),则输出结果为: ## # ## ### # 先序为ABCDEGF,中序为CBEGDFA,后序为CGBFDBA。 2. 利用二叉树的遍历算法的基本操作(设计性实验) 【问题描述】利用二叉树的遍历算法:  求二叉树的结点数;  求二叉树的叶结点数;  求二叉树的高度。 【基本要 】 (1) 按第1题中的方法建立二叉链表存储的二叉树。 (2) 提供菜单选择计算结点数、叶结点数、高度。 【提示】  求二叉树的结点数;  1+左子树的结点数+右子树的结点数  求二叉树的叶结点数;  左子树的叶结点数+右子树的叶结点数  求二叉树的高度。  1+ (左、右子树高度较大的值) 【测试数据】 A C B A D E F 如图中的二叉树,结点数:6个 叶结点数: 2个 高度:4 3.赫夫曼编码(综合性实验) (选做) 【问题描述】 设某编码系统共有n个字符,使用频率分别为w , w , …, w ,设计一个不等长的编码方案,使得该 1 2 n 编码系统的空间效率最好。 【基本要求】 (1)初始化(Initialization )。从终端读入一段英文字符,统计每个字符出现的频率,建立赫夫曼 树; (2)编码(Encoding)。利用建好的赫夫曼树对各字符进行编码,用列表的形式显示在屏幕上,并 将编码结果输出; (3)译码(Decoding)。利用已建好的赫夫曼树对编码进行译码,结果输出。 以下内容虽难度提高,但比较有意思,推荐有能力的同学选做,或者2-3个同学讨论后共同开发, 具体功能及完成程度不做限制。建议大家上网搜索相关资料! 【进阶要求】利用赫夫曼编码将任意的英语文本文件压缩和解压缩 (1)初始化(Initialization)。从终端读入一个英语文本文件ToBeTran,统计每个字符出现的频率, 建立赫夫曼树,并将它存于文件hfmTree中(亦可不保存)。 (2)压缩(Compress)。利用已建好的赫夫曼树对文件ToBeTran中的正文进行编码,然后将结果存 入文件CodeFile中。 (3)解压(Uncompress)。利用已建好的赫夫曼树将文件CodeFile中的代码进行译码,结果存入文 件TextFile中。 (4)比较文件(Compare)。使用Dos命名FC比较文件ToBeTran和文件TextFile两个文件是否相同。 可调用system(“FC ToBeTran.txt TextFile.txt”); 语句进行比较。 (5)打印赫夫曼树(Tree printing)。将已在内存中的赫夫曼树以直观的方式显示在终端上。 【注】完成后可观察压缩文件与原文件的大小,计算下压缩率。

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档