[高等教育]清华大学《数据结构》课程讲义第五讲.pptVIP

[高等教育]清华大学《数据结构》课程讲义第五讲.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[高等教育]清华大学《数据结构》课程讲义第五讲

* * * * * 数据结构 2012.2 课程大纲 第1讲 数据结构—应用、概念、以及课程基础 第2讲 线性表--链表、队列 第3讲 堆栈、非线性数据结构-二叉树 第4讲 二叉树、堆 第5讲 堆、哈夫曼树 第6讲 检索操作 第7讲 分块检索与哈希表 第8讲 排序 第9讲 算法分析与图的基本概念 第10讲 图结构 第11讲 图应用 第12讲 高级数据结构内容--索引技术 第五讲 堆、哈夫曼树 非线性数据结构--二叉树 堆结构 堆的定义 建堆方法 最大堆建堆方法 建堆的起点 建堆程序 把元素插入到一个堆中 堆应用 关于数据结构大作业(三) 参考作业评判 非线性数据结构--二叉树 哈夫曼树 树结构分类 等概率检索的最佳二叉树 树的路径与检索效率 等概率下的最佳检索树 非等概率检索的最佳二叉树 哈夫曼树 哈夫曼树算法 程序设计方法 程序结构 哈夫曼树应用举例 哈夫曼编码树 序列的归并顺序 成绩段: 50,50-59,60-64, 65-69,70-74,75-79,80-84,85-89,90-94,95-100 E, D, C, C+, B-, B, B+, A, AA, AA+ 2. 节点结构由数据域与两指域组成的链式存储结构,数据域由分数(int)、学号、姓名组成,设有相同分数的学生人数小于20。 3. 特点 一个成绩段内有多个同学; 多个同学有相同的分数; 大作业(三)--二叉排序成绩树节点设计 struct node { int total; stuGRADE A[10]; struct node *left,*right; }; 怎样设计节点结构? 一棵成绩树 struct stuGRADE { int grade; int SUBtotal; student B[20]; }; 成绩段的分数分布不规律 total A[0 ] A[1 ] A[2 ] A[3 ] A[9 ] struct student { char num[20]; char name[20]; }; 0 1 2 3 4 5 6 7 8 9 有相同分数的学生数 while(A[i].grade=0)for(int j=0;jSUBtotal;j++){coutA[i].B[j].numendl; i++} 遍历一个成绩段的学生分数 请各位同学自己设计节点,这里仅供参考。 相同分数的学生信息 分数初始化=-1 成绩段内的学生数,初始化=0。 成绩段内的分数分布,如节点:A[0]对应成绩是50分的学生信息,A[1]对应成绩是51分的学生信息。 大作业(三)--参考作业评判 十字链参考 一、功能区设计 总体不错; 程序设计细节欠缺,比如插入操作,点击后弹出对话框,必须再次用鼠标点击复选框后,才能输入。 二、图形界面 总体不错; 节点不能拖动,缺乏树形状界面调整,反映出不熟悉应用软件风格; 三、对作业理解 没有用成绩段作为节点,而是以学号(人)为节点,因此节点数会变得庞大; 平衡处理的很好。 层次遍历不错,这次删除了线索化 二叉树的内容,有条件的同学可以自己做。 统计界面不错。 数据结构大作业三范例(2008011577) 堆结构 a2 a1 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 一堆元素有顺序的聚集在一起 结构上看,是一棵完全二叉树 整体看是堆形状 堆是一棵用顺序存储实现的完全二叉树 堆元素排列是局部有序,即节点关键码与其左右孩子关键码有确定的顺序。 最大值堆:任一节点关键码都大于或等于其孩子的关键码,定义是递归的。 最小值堆:任一节点关键码都小于或等于其孩子的关键码,定义是递归的。 局部有序:有序关系仅限定在父亲与孩子之间,任何一个节点与其兄弟之间的关键码值大小都没有必然的联系 兄弟之间的关键码值无序 最大值堆结构 21 关键码值 19 12 15 17 10 6 3 7 16 11 8 9 1 顶点具有最大关键码值 子堆顶点仍具有最大关键码 建堆不唯一:因为兄弟之间关键码值的大小没有必然的联系 最小堆结构类似 最大值建堆方法(1) 1 2 3 4 5 6 7 关键码值 一棵完全二叉树已经存储在数组内 方法1:从底层最左边叶子节点开始,逐层比较每一节点与其父节点的值;

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档