图的遍历试讲课件

上传人:我*** 文档编号:141541598 上传时间:2020-08-09 格式:PPT 页数:22 大小:206KB
返回 下载 相关 举报
图的遍历试讲课件_第1页
第1页 / 共22页
图的遍历试讲课件_第2页
第2页 / 共22页
图的遍历试讲课件_第3页
第3页 / 共22页
图的遍历试讲课件_第4页
第4页 / 共22页
图的遍历试讲课件_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《图的遍历试讲课件》由会员分享,可在线阅读,更多相关《图的遍历试讲课件(22页珍藏版)》请在金锄头文库上搜索。

1、图的遍历广度优先搜索算法,杨彦红 13466302868,回顾基本概念图及图的存储结构 广度优先算法的思想 广度优先算法内容 小结 作业,课堂内容安排,邻接矩阵 (不推荐) 邻接表 (推荐) 十字链表 (可以方便的获得入度和出度),图及图的存储结构,0,2,1,5,4,3,6,7,0,1,2 ,1,0,3,4 ,2,0,5,6 ,3,1,7 ,4,1,7 ,5,2 ,6,2 ,7,3,4 ,动机: 社交网络,魔方求解,迷宫求解等 概念 图遍历是按照某种规则或次序访问图中各项点一次且仅一次的操作,亦是将网状结构按某种规则线性化的过程 。,图遍历的基本思想,动机: 社交网络,魔方求解,迷宫求解等

2、概念 图遍历是按照某种规则或次序访问图中各项点一次且仅一次的操作,亦是将网状结构按某种规则线性化的过程 。 问题 遵循什么样的规则? 用什么表示点未访问还是已被访问?,图遍历的基本思想,动机: 社交网络,魔方求解,迷宫求解等 概念 图遍历是按照某种规则或次序访问图中各项点一次且仅一次的操作,亦是将网状结构按某种规则线性化的过程 。 问题 遵循什么样的规则?广度优先, 深度优先 用什么表示点未访问还是已被访问?增加节点状态变量,图遍历的基本思想,广度优先算法演示- first time,1、设初始时,所有的顶点均未被访问 2、从图中的某个顶点v0出发,访问v0,并依次访问v0的各邻接点 3、然后

3、分别从这些被访问的节点出发仍按照广度优先的策略搜索其他各点, 4、直到所有能访问的顶点都访问完为止。,0,2,1,5,4,3,6,7,0,1,2,3,4,5,6,7,技巧:用队列 Queue,(0, 1, 2, 3, 4, 5, 6, 7),Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False)

4、Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,0,1,2 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u

5、=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,0,1,2 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q);

6、 u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,0,1,2 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emp

7、tyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,0,1,2 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True;

8、 Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,1,0,3,4 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q);

9、 Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,1,0,3,4 ,Void BFS(Vnode G, i

10、nt v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,

11、2,0,5,6 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue / end void,广度优先算法演示-Se

12、cond time,0,2,1,5,4,3,6,7,Q,2,0,5,6 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while empty

13、queue / end void,广度优先算法演示-Second time,0,2,1,5,4,3,6,7,Q,3,1,7 ,Void BFS(Vnode G, int v) int u; Clearqueue (Q); Visit (G,v); visitedv=True; Enqueue(Q,v); while(! Emptyqueue (Q) v=Delqueue(Q); u=firstadj(G,v); while (u=0) if (visited(u)=False) Visit (G,u); visitedu=True; Enqueue (Q,u); u=nextadj(G,v,u) / end u /end while emptyqueue /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号