- 1、本文档共62页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
二叉树ADT及哈夫曼编码
问题重述
建立二叉树的ADT,并实现对10个不同大小数进行哈夫曼编码。ADT
实现功能随机生成一棵二叉树,插入节点,删除节点,查找节点,遍历树
(先序,中序,后序和层序),输出树高,输出节点数,输出叶子数。
算法基本思想
1.树的ADT
(1)随机生成二叉树
用队列实现,随机对队头节点添加左右子树,并将新节点入队,
将其出队,直到节点数到达用户指定的n。
(2)遍历二叉树
先序、中序和后序遍历都用递归实现,层序遍历用队列实现,访
问队头节点,并将其子节点入队,将其出队,直到队列为空。
(3)插入节点
从根节点开始,随机决定往左右插入,如果该方向的子节点为空,
则插入到此位置,否则移动指针到子节点,继续执行上述操作。
(4)删除节点
先找到此节点,如果是叶节点,直接释放该节点,并对其父节点
相应链接进行修改;否则依次将子节点的数据往上移动(这样可
以避免频繁修改父节点的链接,比较方便),到达一个叶节点后,
将此叶节点释放,并修改其父节点链接。
(5)查找节点
务了让善找结果更明确,用层序遍历查找,最后得到该节点的层
数和在该层的位置。
(6)得到树高
用递归实现,某一节点的高度等于其子节点的最大高度加一。
(7)得到节点数
用递归实现,以某一节点为根的树的节点数等于其左右子树的所
有节点加一。
(8)得到叶节点数
用递归实现,某一节点下所包括的的叶节点数等于其左右子树所
包含的叶子数。
(9)删除树
递归实现,后序遍历所有节点,依次删除。
2.哈夫曼编码的实现
(1)生成哈夫曼树
首先,随机生成10个不同大小的1〜100之间的整数,归一化计算
出每个节点的概率;
然后,利用冒泡算法的思想,每次只得到前两个最小权值节点,
在数组末端加入新节点,其权值等于这两个节点的权值和,左右
儿子分别为第一个节点和第二个节点,将记录数组首位置的游标
加二,这样循环九次之后就得到一棵哈夫曼树。其根节点是数组
末端存储的节点。
(2)得到所有叶节点的哈夫曼编码
用栈实现对路径的记录(左走压入0,右走压入1),后序遍历所
有节点,只输出叶节点的路径。
三、主要数据结构和函数
1.二叉树的节点
typedefstructBinaryNode
(
void*data;
BinaryNode*LCh;
BinaryNode*RCh;
}BN;
2.队列类
(1)公有函数和变量
intEmpty();
函数功能
得到队列是否为空;
返回值
0表示非空,1表示空。
void*GetFront();
函数功能
得到队首元素;
返回值
NULL表示队空,其他为队首元素的指针。
intDel();
函数功能
删除队首元素;
返回值
-1表示队空删除失败,。表示删除成功。
您可能关注的文档
- oracle学习使用手册v2.pdf
- TEC-8计算机硬件综合实验系统介绍及习题.pdf
- 北京邮电大学课程设计报告 数字逻辑.pdf
- 北京邮电大学通信原理笔记.pdf
- 北京邮电大学网络教育《大学英语2》期末考试(小抄版).pdf
- 北京邮电大学远程、 函授教育《市场营销学》期末复习题及答案.pdf
- 北邮 信息安全专业 第5章 硬件冗余设计技术 容错计算技术课件.pdf
- 北邮2001-2008通信原理硕士研究生入学考试试题及答案.pdf
- 北邮数电综合实验-自行车尾灯设计.pdf
- 北邮-数据通信作业.pdf
- 精品-广州市越秀区中小学教师招聘考试试题及答案2022.pdf
- 杭州低碳科技馆景观照明亮化施工组织方案(DOC) .pdf
- 精品-电影《长津湖之水门桥》观后感450字(真题12).pdf
- 监控工作总结(精选12篇).pdf
- 汽车行业人形机器人系列专题之丝杠:高壁垒精密机械件,国产替空间广阔-国信证券.pptx
- 军贸,统筹管理,国防工业“量价利”向上突破的必由之路-广发证券50.pdf
- 智慧人力,引领未来-2024年生成式AI赋能人力资源管理研究报告.pdf
- ESG跨境:全球电商平台详解.pptx
- 浙江省温州市平阳县2023-2024学年四年级上学期语文期末考试试卷.pdf
- 山东省德州市陵城区2022-2023学年五年级上学期数学期末考试试卷.docx
文档评论(0)