首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点Vi到顶点Vj的路径(i≠j)。(注意:算法中涉及的图的基本操作必须在存储结构上实现。)
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点Vi到顶点Vj的路径(i≠j)。(注意:算法中涉及的图的基本操作必须在存储结构上实现。)
admin
2019-01-16
53
问题
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点V
i
到顶点V
j
的路径(i≠j)。(注意:算法中涉及的图的基本操作必须在存储结构上实现。)
选项
答案
算法1: int visited[]=0; //全局变量,访问数组初始化 int dfS(AdjList g,vi){ //以邻接表存储的有向图g,判断vi到vj是否有通路,返回1或0 visited[vi]=1; //visited是访问数组,设顶点的信息就是顶点编号 P:g[vi].firstarc; //第一个邻接点 while(P!=null){ j=p->adjvex; if(vj==j){flag=1;return(1);} //vi和vj有通路 if(visited[j]==O)dfs(g,j); P=P一>next: }//while if(!flag)return(0); } 算法2:输出vi到vj的路径,其思想是用一个栈存放遍历的顶点,遇到顶点vj时输出路径。 void dfs(AdjList g,int i){ //顶点vi和顶点vj间是否有路径,如有,则输出 int top=0,stack[]; //stack是存放顶点编号的栈 visited[i]=1; //visited数组在进入dfs前已初始化 stack[++top]=i; P=g[i].firstarc; //求第一个邻接点 while(P){ if(p->adjvex==j){ stack[++top]=j; printf(”顶点vi和vj的路径为:\n”); for(i=1;i<=top;i++)printf(”%4d”,stack[i]); exit(0); } else if(visited[p一>adjvex]==0){dfs(g,g->adjvex);top--;p=p->next;} } } 算法3:非递归算法求解。 int Judge(AdjList g,int i,j){ //判断n个顶点以邻接表示的有向图g中,顶点vi各vj是否有路径, //有则返回1,否则返回0。 for(i=1;i<=n;i++)visited[i]=0; //访问标记数组初始化 int stack[],top=0;stack[++top]=vi; while(top>0){ k=stack[top一一];P=g[k].firstarc; while(P!=null&&visited[p->adjvex]==1)P=p->next; //查第k个链表中第一个未访问的弧结点 if(P==null)top--; else{ i=p->adjvex; if(i一=j)return(1); //顶点vi和vj间有路径 else{visited[i]=1;stack[++top]=i;} } }while return(0); }//顶点vi和vj间无通路
解析
此题考查的知识点是图的遍历。在有向图中,判断顶点v
i
和顶点v
j
间是否有路径,可采用搜索的方法,从顶点v
i
出发,不论是深度优先搜索(DFS)还是宽度优先搜索(BFS),在未退出DFS函数或BFS函数前,若访问到v
j
,则说明有通路,否则无通路。设一全程变量flag,初始化为0,若有通路,则flag=1。
转载请注明原文地址:https://kaotiyun.com/show/9lRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
隋唐时的冶铸业已普遍采用的技术包括()①切削②抛光③焊接④使用机械动力
纳粹德国公开撕毁《凡尔赛和约》的步骤有()。①大量扩展陆军,重建空军,建造军舰②迫害犹太人③退出国联④开进莱茵非军事区
简述按照恩格斯的划分方法人类的起源与进化。
冶铁技术中的淬火法提高了铁器的坚韧与锋利程度,这一技术最早出现在()。
简述诺曼征服的过程及其影响。
下列关于塞尔维乌斯改革的叙述中,不正确的是()。
简述“事实判断、成因判断和价值判断”三者的相互关系。
洋务运动期间,军事企业主要采取的组织形式是()。
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间
随机试题
我国社会主义初级阶段的主要矛盾有其特定的历史内容,这些内容包含()
甲公司向乙公司订购一批专门从澳大利亚进口的奶粉,乙公司在订立合同时将国产奶粉谎称为进口奶粉。甲公司事后得知实情,恰逢国产奶粉畅销,甲公司有意继续履行合同,乙公司则希望将这批货物以更高的价格售与他人。若下列情形均发生于合同订立之日起1年内,请回答下列问题并
国际贸易的支付方式有:_____;_____;_____。
患者男性,57岁,胸闷伴下肢水肿2个月,心电图V1~V4导联QS波
限时精确度高的限时器是
下列各项中,影响企业价值创造的因素包括()。
小明想把自己购买的正版软件上传到网站上以供其他同学下载,但老师说不可以,这是因为()。
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】A公司是一家为快消行业提供App开发解决方案的软件企业。项目经理范工承接了一个开发鲜花配送App的项目,项目需求非常明确,此前A公司承接过一个类似的项目,做得很成功,
在窗体上有一个命令按钮Command1和一个文本框Text1,编写事件代码如下:PrivateSubCommand1_Click()Dimi,j,XFori=1To20Step2x=0For
MostAmericansenjoymovingfromplacetoplaceveryoften.Insomestatesonlyonehouse【C1】______fivehaspeoplelivinginit
最新回复
(
0
)