网站大量收购独家精品文档,联系QQ:2885784924

数据结构课件7图1章节幻灯片.PPT

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
viod DFSM (MGraph *G, int i){ /*从vi为出发,对邻接矩阵表示的图G作深度优先有哪些信誉好的足球投注网站*/ int j; printf(“visit vertex:%c”, G-vexs[i]); visited[i] = TRUE; /*标记vi已访问*/ for(j = 1; j = G-n; j++) if(G-edges[i][j] == 1 !visited[j]) DFSM(G, j); } 算法分析 图中有 n 个顶点,e 条边。 如果用邻接表表示图,沿 链可以找到某个顶点 v 的所有邻接顶点 w。由于总共有 2e 个边结点,所以扫描边的时间为O(e)。而且对所有顶点递归访问1次,所以遍历图的时间复杂性为O(n+e)。 如果用邻接矩阵表示图,则查找每一个顶点的所有的边,所需时间为O(n),则遍历图中所有的顶点所需的时间为O(n2)。 V1 V2 V4 V5 V3 V7 V6 V8 例 深度遍历:V1? 1 2 3 4 1 3 4 2 vexdata firstarc 2 7 8 3 ^ ^ ^ adjvex next 5 5 6 4 1 ^ 5 1 2 8 2 ^ 6 7 8 6 7 8 7 3 6 3 5 4 ^ ^ ^ V3 ? V7 ? V6 ? V2 ? V5 ? V8 ? V4 V1 V2 V4 V5 V3 V7 V6 V8 例 1 2 3 4 1 3 4 2 vexdata firstarc 2 7 8 3 ^ ^ ^ adjvex next 5 5 6 ^ 4 8 2 ^ 6 7 8 6 7 8 7 ^ ^ ^ 深度遍历:V1? V3 ? V7 ? V6 ? V2 ? V4 ? V8 ? V5 广度优先遍历(BFS) 方法:从图的某一顶点V0出发,访问此顶点后,依次访问V0的各个未曾访问过的邻接点;然后分别从这些邻接点出发,广度优先遍历图,直至图中所有已被访问的顶点的邻接点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止 广度优先有哪些信誉好的足球投注网站过程 广度优先生成树 V1 V2 V4 V5 V3 V7 V6 V8 例 广度遍历:V1? V2 ?V3 ? V4 ?V6 ?V7 ?V8 ?V5 V1 V2 V4 V5 V3 V7 V6 V8 例 广度遍历:V1? V2 ?V3 ? V4 ?V5 ?V6 ?V7 ?V8 V1 V2 V4 V5 V3 V7 V6 V8 例 例 V1 V2 V4 V5 V3 V7 V6 V8 广度遍历:V1? V2 ?V3 ? V4 ?V5 ?V6 ?V7 ?V8 广度遍历:V1? V2 ?V3 ? V4 ?V5 ?V6 ?V7 ?V8 广度优先有哪些信誉好的足球投注网站是一种分层的有哪些信誉好的足球投注网站过程,每向前走一步可能访问一批顶点,不像深度优先有哪些信誉好的足球投注网站那样有往回退的情况。因此,广度优先有哪些信誉好的足球投注网站不是一个递归的过程,其算法也不是递归的。 为了实现逐层访问,算法中使用了一个队列,以记忆正在访问的这一层和上一层的顶点,以便于向下一层访问。 与深度优先有哪些信誉好的足球投注网站过程一样,为避免重复访问,需要一个辅助数组 visited [ ],给被访问过的顶点加标记。 广度优先遍历算法 开始 标志数组初始化 i=1 Vi访问过 BFS i=i+1 iVexnums 结束 N N Y Y 开始 访问Vi,置标志 求V邻接点w w存在吗 V下一邻接点?w w访问过 结束 N Y N Y BFS 初始化队列 Vi入队 队列空吗 队头V出队 访问w,置标志 w入队 N a a Y 图的广度优先有哪些信誉好的足球投注网站算法 void BFS (ALGraph *G, int k ) { /*以Vk为源点对用邻接表表示的图G作广度优先有哪些信誉好的足球投注网站*/ int i; CirQueue Q; EdgeNode *p; InitQueue(Q); printf(“visit vertex:%c”, G-adjlist[k].vertex); visited[k] = TRUE; EnQueue (Q, k); /*访问 vk, 进队列*/ while ( !QueueEmpty (Q) ) { /*队空有哪些信誉好的足球投注网站结束*/ i =DeQueue (Q); /*不空, 出队列*/ p = G-adjlist[i].firstedge; /*取顶点 vk 的第一个邻接顶点*/ while ( p ) {

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档