- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第5章 图的搜索算法
2.显式图的常用术语 3.隐式图术语 1)子集树 2)排列树 4.图的存储 2)邻接表 二、图搜索及其术语 2.相关概念和术语 一、算法框架 2.算法框架 1)邻接表表示图的广度优先搜索算法 2)邻接矩阵表示的图的广度优先搜索算法 算法过程: 数据结构设计: 【例】走迷宫问题 算法设计: 数据结构设计: 首先访问出发点V,并将其标记为已访问过;然后依次从V出发搜索V的每个邻接点W。若W未曾访问过,则以W为新的出发点继续进行深度优先遍历,直至图中所有和源点v有路径相通的顶点均已被访问为止。 一、算法框架 1.算法的基本思路 1)确定图的存储方式; 2)遍历过程中的操作,其中包括为输出问题解而进行的存储操作; 3)输出问题的结论。 4)一般在回溯前的应该将结点状态恢复为原始状态,特别是在有多解需求的问题中。 int visite[n]; graph head[100]; dfs(int k) // head图的顶点数组 { edgenode *ptr //ptr图的边表指针 visited[k]=1; // 记录已遍历过 print(k); ptr=head[k].firstedge; //顶点的第一个邻接点 while(ptrNULL) //遍历至链表尾 { if(visited[ptr-vertex]=0) //如没遍历过 dfs(ptr-vertex); //递归遍历 ptr=ptr-nextnode; //下一个顶点 } } 2)邻接矩阵存储图的搜索算法 graph g[100][100],int n; dfsm(int k){ int j; print(k); visited[k]=1; for(j=1;j=n;j++) //依次搜索vk的邻接点?? ??? if(g[k][j]=1 and visited[j]=0)??????? dfsm(g,j) //(vk,vj)∈E,且vj未访问过,故vj为新出发点} 【例】走迷宫问题 用迷宫本身的存储空间除了记录走过的信息,还要标识是否可行: maze[i][j]=3 标识走过的方格 ; maze[i][j]=2 标识走入死胡同的方格, 这样,最后存储为“3”的方格为可行的方格。而当一个方格四个方向都搜索完还没有走到出口,说明该方格或无路可走或只能走入了“死胡同”。 int maze[8][8]={{0,0,0,0,0,0,0,0}, {0,1,1,1,1,0,1,0},{0,0,0,0,1,0,1,0}, {0,1,0,0,0,0,1,0},{0,1,0,1,1,0,1,0}, {0,1,0,0,0,0,1,1},{0,1,0,0,1,0,0,0}, {0,1,1,1,1,1,1,0}}; int fx[4]={1,-1,0,0}, fy[4]={0,0,-1,1}; int i,j,k,total; main( ) { int total=0; maze[1][1]=3; //入口坐标设置已走标志 search(1,1); print(“Total is”,total); //统计总步数} search(int i, int j){ int k,newi,newj; for(k=1;k=4;k++) //搜索可达的方格/ if(check(i,j,k)=1) { newi=i+fx[k]; newj=j+fy[k]; maze[newi][newj]=3; //设置已走过标志 if(newi=8 and newj=8) Out( ); else search(newi,newj); } maze[i][j]=2; //某一方格只能走入死胡同} Out( ) { int i,j; for( i=1;i=8;i++) { print(“换行符”); for(j=1;j=8;j++) if(m
您可能关注的文档
最近下载
- 最新人教版六年级数学上册教案全册.doc VIP
- 《中华民族大团结》(初中)第10课伟大梦想共同追求教案.pdf VIP
- 中外教育理论名著选读.docx VIP
- 专业音响完整系统的安装与调试.doc VIP
- 西门子12001500PLC用触摸屏按钮触发启动PID的自整定编写方法程序示例.docx VIP
- 《中外教育名著选读》模拟试题.docx VIP
- 中兴接入网和epon b ch zxa10f822产品介绍23p.pdf VIP
- 平型关大捷和台儿庄战役.ppt VIP
- 环境学第2版-左玉辉-教学课件-第2讲 水环境.ppt VIP
- 小米质量保证工程师岗面试题库参考答案和答题要点.docx VIP
文档评论(0)