- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * typedef struct { AdjList headArray; //头结点数组 int vexnum, arcnum; //图的当前顶点数和弧数 int kind; //图的种类标志 } ALGraph; 其中AdjNode为表结点,InfoType为与边相关信息的数据类型(可以包括权等)。VNode为头结点,VertexType是顶点的数据类型,MAX_NUM表示最多可以存放的顶点个数。 */61 2.3.6 图的遍历方法 1.深度优先搜索 */61 2.广度优先搜索 */61 2.3.7 树和图的应用 举例 霍夫曼编码 最小生成树 */61 哈夫曼树和哈夫曼编码 设计二进制编码方案时要考虑不同字符的使用频率,使用频率高的字符编码应当尽量短一些。但是仅仅考虑使用频率也是不够的。 例如:某个文件由A、B、C、D四个字符组成,其中A用得最多,C次之。 方案1: A — 1 C — 0 B — 10 D — 11 那么象1100这样的二进制数据具有二义性,既代表AACC,又可代表ABC,还可代表DCC。 为了不使二进制编码具有二义性,每个字符编码都不能与其他字符编码的前面若干位重合。 */61 假设二叉树中的左分支代表0,右分支代表1,则不论字符是采用何种0、1组合形式构成的编码,它必然对应二叉树中的某一个结点。 */61 B D C A 0 0 1 1 A B 0 1 D C 0 0 1 1 (a)有二义性的编码系统对应的二叉树 (b)无二义性的编码系统对应的二叉树 任何一个无二义性的二进制字符编码系统必然与这样一颗二叉树对应,该二叉树的叶子结点对应着所有需要转换的字符,并且按照左分支代表0、右分支代表1的规则,从根到该叶子的分支对应的0、1序列就构成叶子对应字符的二进制编码。 二叉树带权路径长度:设二叉树有n个带有权值的叶子结点,每个叶子到根的路径长度乘以其权值之和称为二叉树带权路径长度。一般记作: 其中,wi为第i个叶子的权重,li为第i个叶子到根的路径长度。 哈夫曼树:以一些带有固定权值的结点作为叶子所构造的,具有最小带权路径长度的二叉树称为哈夫曼树。 */61 */61 假定有一段报文由a、b、c、d四个字符构成,它们的使用频率比为6﹕4﹕2﹕1,则用a、b、c、d作为叶子结点构造哈夫曼树的过程如图所示。 若二叉树中的左分支代表0,右分支代表1,则a、b、c、d的哈夫曼编码分别为0、10、110、111。 【例26】假定编码系统中有五个字符X、S、D、E、A,它们的使用频率比为2﹕9﹕5﹕7﹕8,以这些频率值作叶子的权构造哈夫曼树,并输出哈夫曼编码。 */61 最小生成树 假定在多个城市间建立通信网络,将城市作为顶点,将所有可能的通信线路作为边,就构成一个图结构。 再以通信线路的造价作为边的权重就构成一个无向网络。 在保证通信功能的前提下,为了使总造价最小,需要寻找网络中权重之和最小的连通子图。 */61 (1)普里姆算法 假定G={ V, E }为连通网络,其中V为顶点集合,E为带权边集合。 设置生成树顶点集合U,最初它只包含某一个顶点。设置生成树边集合T,最初为空集。 而后考察这样的边,它的一个顶点u∈U,另一个顶点v∈V-U,每次从所有这样的边中选择权值最小的边(u, v)加入集合T,并把顶点v加入到集合U中。 如此不断重复,直到所有顶点都加入到集合U中为止。 */61 */61 */61 (2)克鲁斯卡尔算法 假定G={ V, E }为连通网络,其中V为顶点集合,E为带权边集合。 先构造一个包含所有顶点,没有边的非连通图T={ V, {} },图中每个顶点自成一个连通分量。 当在E中选到一条具有最小权值的边时,若该边的两个顶点落在T的不同的连通分量上,则将此边加入到T中;否则将此边舍去,重新选择一条权值最小的边。 如此重复下去,直到所有顶点在同一个连通分量上为止。 */61 */61 谢谢 * * * * * * * * * * * * * * * * * 西安交通大学计算机教学实验中心 普通高等教育“十一五”国家级规划教材 “十二五”普通高等教育本科国家级规划教材 赵英良等.软件开发技术基础(第2版). 机械工业出版社 第2章 数据结构及其应用非线性数据结构 西安交通大学 计算机教学实验中心 软件开发技术基础 2.3 非线性数据结构 多维数组 树、二叉树 图 */61 2.3.1 多维数组 二维数组 行优先顺序存储 ? 列优先顺序存储 */61 二维数组 ? 压缩存储 对称矩阵
您可能关注的文档
- 软件工程实践教程 教学课件 作者 陆惠恩 第7章.ppt
- 软件工程实践教程 教学课件 作者 陆惠恩 第8章.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第1章软件工程引论.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第2章软件生存周期及开发模型.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第3 章 结构化需求分析.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第4章 结构化软件设计.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第5 章 面向对象的需求分析.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第6 章 面向对象的软件设计.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第7 章 软件测试技术.ppt
- 软件工程实用教程 第2版 教学课件 作者 郭宁 第8 章 软件维护技术.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第2章 数据结构及其应用3_查找和排序.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第3章 操作系统及相关程序设计1_概述及进程管理.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第3章 操作系统及相关程序设计2_内存管理.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第3章 操作系统及相关程序设计3_设备文件接口.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第3章 操作系统及相关程序设计4_Windows编程入门.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第4章 数据库及应用程序开发1_数据库技术基础.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第4章 数据库及应用程序开发2_SQL.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第4章 数据库及应用程序开发3_数据库设计.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第4章 数据库及应用程序开发4_数据库应用程序编程.ppt
- 软件开发技术基础 第2版 教学课件 作者 赵英良 第5章 网络编程技术1_Internet基础.ppt
文档评论(0)