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

7.4图的连通性问题 无向图的连通分量 void DFSForest(Graph G,CSTree T) { T=Null; for (v=0;vG.vexnum;++v) visited[v]=FALSE; for(v=0;VG.vexnum;++v) if (!visited[v]) {p=(CSTree)malloc(sizeof(CSNode)); *p={GetVex(G,v),NULL,NULL}; if (!T) T=p; else q-nextsibling=p; q=p; DFSTree(G,v,p) } } void DFSTree(Graph G, int v, CSTree T) { visited[v]=TRUE;first=TRUE; for(w=FirstAdiVex(G,v);w=0; w=NextAdjVex(G,v,w)) if (!visited[w]) {p=(CSTree)malloc (sizeof(CSNode)); *p={GetVex(G,w),NULL,NULL}; if (first){ T-lchild=p;first=FALSE;} else q-nextsibling=p; q=p; DFSTree(G,w,p) } } 7.5 两点之间的最短路径问题 求从某个源点到其余各点的最短路径 二、广度优先搜索遍历图 V w1 w8 w3 w7 w6 w2 w5 w4 对连通图,从起始点V到其余各 顶点必定存在路径。 其中,V-w1, V-w2, V-w8 的路径长度为1; V-w7, V-w3, V-w5 的路径长度为2; V-w6, V-w4 的路径长度为3。 w1 V w2 w7 w6 w3 w8 w5 w4 从图中的某个顶点V0出发,并在访问 此顶点之后依次访问V0的所有未被访问 过的邻接点,之后按这些顶点被访问的 先后次序依次访问它们的邻接点,直至 图中所有和V0有路径相通的顶点都被访 问到。 若此时图中尚有顶点未被访问,则另 选图中一个未曾被访问的顶点作起始点 ,重复上述过程,直至图中所有顶点都 被访问到为止。 void BFSTraverse(Graph G, Status (*Visit)(int v)){ for (v=0; vG.vexnum; ++v) visited[v] = FALSE; //初始化访问标志 InitQueue(Q); // 置空的辅助队列Q for ( v=0; vG.vexnum; ++v ) if ( !visited[v]) { // v 尚未访问 } } // BFSTraverse … … visited[v] = TRUE; Visit(v); // 访问v EnQueue(Q, v); // v入队列 while (!QueueEmpty(Q)) { DeQueue(Q, v); // 队头元素出队并置为u for(w=FirstAdjVex(G, v); w!=0; w=NextAdjVex(G,v,w)) if ( ! visited[w]) { visited[w]=TRUE; Visit(w); EnQueue(Q, w); // 访问的顶点w入队列 } // if } // while 三、遍历应用举例 求两个顶点之间的一条路径长度最短的路径 求两个顶点之间的一条路径长度最短的路径 若两个顶点之间存在多条路径,则其中必有一条路径长度最短的路径。如何求得这条路径? a b c h d e k f g 因此,求路径长度最短的路径可以基于广度优先搜索遍历进行,但需要修改链队列的结点结构及其入队列和出队列的算法。 深度优先搜索访问 顶点的次序取决于 图的存储结构,而 广度优先搜索访问 顶点的次序是按 “路径长度”渐增 的次序。 例如:求下图中顶点 3 至顶点 5 的一条最短 路径。 链队列的状态如下所示: 3 1 2

文档评论(0)

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

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

1亿VIP精品文档

相关文档