- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二十一讲图的遍历
深度优先有哪些信誉好的足球投注网站DFS ( Depth First Search ) 深度优先有哪些信誉好的足球投注网站的示例 DFS 在访问图中某一起始顶点 v 后,由 v 出发,访问它的任一邻接顶点 w1;再从 w1 出发,访问与 w1邻接但还没有访问过的顶点 w2;然后再从 w2 出发,进行类似的访问,… 如此进行下去,直至到达所有的邻接顶点都被访问过的顶点 u 为止。 接着,退回一步,退到前一次刚访问过的顶点,看是否还有其它没有被访问的邻接顶点。如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;如果没有,就再退回一步进行有哪些信誉好的足球投注网站。重复上述过程,直到连通图中所有顶点都被访问过为止。 算法分析 设图中有 n 个顶点,e 条边。 如果用邻接表表示图,沿 firstout 链可以找到某个顶点 v 的所有邻接顶点 w。由于总共有 2e 个边结点,所以扫描边的时间为O(e)。而且对所有顶点递归访问1次,所以遍历图的时间复杂性为O(n+e)。 如果用邻接矩阵表示图,则查找每一个顶点的邻接点所需的时间为O(n2)。 广度优先有哪些信誉好的足球投注网站BFS ( Breadth First Search ) 广度优先有哪些信誉好的足球投注网站的示例 使用广度优先有哪些信誉好的足球投注网站在访问了起始顶点 v 之后,由 v 出发,依次访问 v 的各个未曾被访问过的邻接顶点 w1, w2, …, wt,然后再顺序访问 w1, w2, …, wt 的所有还未被访问过的邻接顶点。再从这些访问过的顶点出发,再访问它们的所有还未被访问过的邻接点,… 如此做下去,直到图中所有顶点都被访问到为止。 广度优先有哪些信誉好的足球投注网站是一种分层的有哪些信誉好的足球投注网站过程,每向前走一步可能访问一批顶点,不像深度优先有哪些信誉好的足球投注网站那样有往回退的情况。因此,广度优先有哪些信誉好的足球投注网站不是一个递归的过程,其算法也不是递归的。 为了实现逐层访问,算法中使用了一个队列,以记忆正在访问的这一层和上一层的顶点,以便于向下一层访问。 与深度优先有哪些信誉好的足球投注网站过程一样,为避免重复访问,需要一个辅助数组 visited [ ],给被访问过的顶点加标记。 *滨州学院计算机科学技术系 数据结构 系内数据结构学习网站: 00:8080/ds *滨州学院计算机科学技术系 * * 第七章 图 图的遍历 从图中某个顶点出发游历图,访遍图中其余顶点,并且使图中的每个顶点仅被访问一次的过程。 遇到的问题:图中可能存在回路,且图的任一顶点都可能与其它顶点相通,在访问完某个顶点之后可能会沿着某些边又回到了曾经访问过的顶点。 为避免重复访问,可设一个标志顶点是否被访问过的辅助数组 visited[],它的初始状态为0,在图遍历过程中,一旦某一个顶点i被访问,就修改 visited[i]为1,防止它被多次访问。 从图中某个顶点V0 出发,访问此顶点,然后选择一个与V0邻接且未被访问的顶点W为初始顶点,再从W出发进行深度优先有哪些信誉好的足球投注网站, 直至图中所有顶点都被访问到。 一、深度优先有哪些信誉好的足球投注网站遍历 连通图的深度优先有哪些信誉好的足球投注网站遍历 深度优先有哪些信誉好的足球投注网站过程 深度优先生成树 1. 深度优先有哪些信誉好的足球投注网站遍历连通图的过程类似于树的先根遍历; 为每个顶点设立一个 “访问标志 visited[w]”。 2. 如何判别V的邻接点是否被访问? void DFSTraverse(Graph G, Status (*Visit)(int v) ) { // 对图 G 作深度优先遍历 VisitFunc = Visit; for (v=0; vG.vexnum; ++v) visited[v] = false; // 访问标志数组初始化 for (v=0; vG.vexnum; ++v) // 对尚未访问的顶点调用DFS if (!visited[v]) DFS(G, v); } Bolean visited[MAX]; Status (*VisitFunc)(int v); void DFS(Graph G, int v) { // 从第v个顶点出发,深度优先有哪些信誉好的足球投注网站遍历图 G visited[v] = true; VisitFunc(v); for( w=FirstAdjVex(G,v); w=0 ; w=NextAdjVex(G,v,w ) ) if (!visited[w]) DFS(G, w); // 对v的尚未访问的邻接顶点w 递归调用DFS } // DFS 首先将图中每个顶点的访问标志设为 FALSE, 之后有哪些信誉好的足球投注网站图中每个顶点,如果未被访问,则以该顶点为起始点,进行深度优先有哪些信誉好的足球投注网站遍历,否则继续检
文档评论(0)