- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈dfs
信息学竞赛讲座 搜索题例---!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!!-----------
!!!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!!
广度优先搜索是分层次搜索,广泛应用于求解问题的最短路径、最少步骤、最优方法等方面。像最短路径问题、分酒问题、八数码问题都是典型的DFS.
例1:最短路径问题
求从任意一个顶点Vi出发,对给出的图,求到达任意顶点Vj(ij)的所有最短路径
[问题分析]
1、首先用邻接表表示此图各端点的邻接关系。
顶点 接邻顶点 个数
1 2 3 4 3
2 1 3 7 3
3 1 2 4 5 4
4 1 3 6 3
5 3 6 7 8 4
6 4 5 8 3
7 2 5 8 3
8 5 6 7 3
2、数据结构
const
d:array[1..8,1..4] of byte=((2,3,4,0),(1,3,7,0),(1,2,4,5),(1,3,6,0),(3,6,7,8),(4,5,8,0),(2,5,8,0),(5,6,7,0))
{二维数组存放邻接表}
n:array[1..8] of byte=(3,3,4,3,4,3,3,3); {存放邻接顶点数}
var
L:array[1..64] of byte {队列}
F,r:byte {f队头指针,r队尾指针}
B:array[1..64] of byte {链接表,表示某一个结点的前趋结点}
G:array[1..10] of byte {表示层结点的首结点在队列开始的位置}
H:byte {搜索的层次}
由于搜索过的点不再进行搜索,故设置一个数组E[M]为标记,表示结点M是否访问过
e:array[1..8] of 0..1;{用1表示已访问过,0表示还没有访问}
c:array[1..8,1..8]of byte; {C[s,j]存储到达目标结点后各最短路径的线路}
bb:Boolean {搜索结束标记}
3、算法描述
⑴设立初值,并令起始结点进队:
f:=0;r:=1;lL[r]:=st,E[st]:=1;w:=1;h:=1;
⑵将此时第h层(开始h=1,表示第一层)的w(开始时w=1,表示一个结点)顶点的顺序出队,并访问与该层各顶点相邻接但又没有访问过的顶点,同时将这些结点进队列,且设立前趋链接指针和访问过标记,若此时的结点为目标结点,则只设立前趋链接指针而不设立访问过标记
⑶计算此时第h+1层的顶点个数w:=r+1-g[h],然后看该层有多少个顶点为目标结点,凡是出现目标顶点的,就将其个数累计,也就是为最短路径的条数,同时从这个目标结点按前趋链接指针将到达该目标结点的路径的各个顶点编号存入c[s,j]中,然后转⑷,若目标顶点累计个数为0,表明该层没有出现目标结点,则转⑵。
⑷打印搜索到的各条最短路径的各结点编号,并结束程序。
程序如下:(见exp7_1.pas)
program exp7_1;
const
d:array[1..8,1..4] of byte=((2,3,4,0),(1,3,7,0),(1,2,4,5),(1,3,6,0),(3,6,7,8),(4,5,8,0),(2,5,8,0),(5,6,7,0));
n:array[1..8] of byte=(3,3,4,3,4,3,3,3);
var
L,b:array[1..64] of byte;
F,r,h,m,st,ed,I,j,t,k,s,p,w:byte;
G:array[1..10] of byte;
e:array[1..8] of 0..1;
c:array[1..8,1..8]of byte;
bb:Boolean;
begin
write(start:);readln(st);
write(end:);readln(ed);
fillchar(e,sizeof(e),0); {标记数组清零}
fillchar(c,sizeof(c),0); {路径数组清零}
f:=0;r:=1;L[r]:=st;h:
您可能关注的文档
- 河南省电梯使用单位需注意事项.doc
- 河南省第二周期医院评审暨综合评价内容.doc
- 河南省超速行驶常见违法行为及处罚标准.doc
- 河南省电视台标书—最终2.doc
- 河南省第十七届大学生田径运动会竞赛日程表.doc
- 河南省预拌商品混凝土质量检查表.doc
- 河南省酒店餐饮住宿业发展情况.doc
- 河南省炭素生产企业安全生产标准化考评标准.doc1.doc
- 河南省银盾保安服务有限公司制度.doc
- 河南省驻马店市天地惠城小区项目部年终总结汇报.doc
- 人教新目标版英语九年级 中考模拟学情评估(三)(含答案).pdf
- 上海市风华中学2024-2025学年高三上学期9月阶段测试英语试题(无答案).pdf
- 统编版2024-2025学年语文六年级上册期末检测卷(有答案).pdf
- 人教新目标版英语九年级第二学期全册学情评估(含答案).pdf
- 内蒙古自治区巴彦淖尔市杭锦后旗第六中学2024-2025学年八年级上学期阶段性测试历史试题(解析版).pdf
- 湖南省娄底市涟源市部分学校2024-2025学年高一上学期9月月考语文试题 Word版无答案.pdf
- 湖南省衡阳市常宁市2023-2024学年七年级上学期期末考试英语试题.pdf
- 湖南省娄底市涟源市部分学校2024-2025学年高一上学期9月月考语文试题 Word版含解析.pdf
- 江苏省泰州市姜堰区城西实验学校2024-2025学年部编版九年级上学期月考历史试卷(原卷版).pdf
- 内蒙古伊金霍洛旗2022-2023学年七年级上学期期末考试英语试题.pdf
最近下载
- 医学免疫学试题~库.doc
- 广东省广州市南沙区实验外语学校2022-2023学年七年级上学期第一次月考数学试题.docx
- 旋挖钻机安装拆卸施工方案.docx VIP
- 第一章-婴幼儿发展概述.pptx VIP
- 新生儿病房建设与设备配置标准- 2023 20231010.doc VIP
- 年处理3000万只玻璃瓶蒙砂项目环评(2021年新版环评)环境影响报告表.pdf VIP
- 海尔10公斤双动力波轮洗衣机_XQS100-BZ556_使用说明书技术数据参数用户须知指南产品手册电子版.pdf VIP
- 人教新目标英语八年级上册unit3单元语法练习题(含答案).doc
- 10《老人与海(节选)》课件(共64张PPT)统编版高中语文选择性必修上册.pptx VIP
- 注塑车间管理条例.doc VIP
文档评论(0)