数据结构基础(中) ppt290.ppt

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

JYP 数据结构基础(中) 第4章 树 4.1 树和森林的概念及其表示 4.2 二叉树 4.2.2 二叉树性质 4.2.3 二叉树表示 4.3 二叉树遍历与树游标 4.3.1 中序遍历 4.3.2 前序遍历 4.3.3 后序遍历 4.3.4 中序游标 4.3.5 后序游标 4.3.6 按层次遍历 4.4 满足性问题 4.5 线索二叉树 4.5.2 中序遍历线索二叉树 4.5.4 将结点插入线索二叉树 4.6 选择树 4.6.1 胜者树 4.6.2 败者树 4.7 森林的二叉树表示及遍历 4.8 集合表示 4.8.2 在等价类问题中的应用 第5章 堆结构 5.1 最大堆 5.1.2 插入操作 5.1.3 删除操作 第6章 图 6.1 图的基本定义 6.2 图的表示 6.2.2 邻接表 6.2.3 邻接多表 6.3 连通图的遍历 6.3.1 深度优先搜索 6.3.2 广度优先搜索 6.3.3 生成树 6.4 图的连通性 6.5 最小代价生成树 6.5.1 克鲁斯卡尔算法 6.6 最短路径和传递闭包 6.6.2 所有顶点对之间的最短路径 6.6.3 传递闭包 6.7 活动网络 6.7.2 AOE网络 观察图6.22(a)的有向图: 以顶点0为源点,从0到1的最短路径是0, 5, 6, 1,其长度为19。虽然这一路径由三条边构成,但它还是比只含一条边的0, 1路径短。 从0到3不存在路径。 图6.22(b)给出了从0到1,2,4,5和6的最短路径。 这些路径按长度不减少顺序列出。 S — 最短路径已找到的终点(包括源点v)的集合。 对于 w ? S,定义dist[w]为从v出发,只经过S中的顶点,到达w的最短路径的长度。 当按长度不减少顺序生成最短路径时,可以发现: (1)若下一条最短路径是到顶点u的,则该路径始于v,终于u,并且中间只经过S中的顶点。 为此必须证明始于顶点v的最短路径中的所有中间顶点都在S中。 假设该路径中存在一个顶点w且w ? S,则从v到u的路径由从v到w和从w到u两段路径构成,如下图所示: 这一条经过w的路径长度一定比不经过w的短,否则就没必要经过w。 由于每条边的长度都是非负的,所以从v到w的路径长度 dist[u]。 而此时从v到w的最短路径尚未确定,这与按长度不减少顺序生成最短路径的假设矛盾。 因此,不存在不在S中的中间顶点。 (2)根据dist定义和(1),下一条最短路径的终点u必须满足: dist[u] = 如果多个不在S中的顶点的dist都具有同样的最小值,则可任选其中之一。 (3)顶点u按(2)的条件被选中后即成为S的成员,相应的从v到u的最短路径也被确定。 这时,对于任何不属于S且邻接自u的顶点w,dist[w]可能减少。若确实减少,则一定是由于存在一条从v到u,再从u到w的更短路径,如下图所示: 从v到u的路径一定是从v到u的最短路径,而从u到w的路径就是边u, w。 因此从v到w的路径长度为dist[u] + length(u, w)。 假设从u到w的路径含有任何属于S的中间顶点x,如下图所示: 则该路径不可能使dist[w]更短。因为: (a)路径v?u?x的长度 ≥ dist[x] (b)路径v?u?x?w的长度 ≥ 路径v?x?w的长度 ≥ dist[w] 由上观察可得最短路径算法。 设G的n个顶点编号为0, 1, …, n – 1。 集合S用Boolean数组s表示。 到终点w(0≤w n – 1)的最短路径所经过的最后一个顶点用path[w]记载。 设图G本身由长度邻接矩阵表示,则length[i][j]是边i, j的长度。若i, j?E且i?j,则将length[i][j]设置为LARGEINT。length[i][i]可设置为任何非负数。 实验作业:P222—8 广度优先搜索: 首先访问起始顶点v; 接着依次访问所有与v邻接的未被访问过的顶点; 然后再依次访问所有与这些新被访问的顶点邻接的未被访问过的顶点,如此继续,直到所有顶点都被访问为止。 可用一个队列q保存需要访问的顶点,下列程序给出了实现以上过程的算法: voi

文档评论(0)

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

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

1亿VIP精品文档

相关文档