首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点Vi到顶点Vj的路径(i≠j)。(注意:算法中涉及的图的基本操作必须在存储结构上实现。)
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点Vi到顶点Vj的路径(i≠j)。(注意:算法中涉及的图的基本操作必须在存储结构上实现。)
admin
2019-01-16
50
问题
试写一算法,判断以邻接表方式存储的有向图中是否存在由顶点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]==0)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){ //判断13.个顶点以邻接表示的有向图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/0iRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
解放军渡江战役中横渡长江的东西两个攻击点是()。
两宋之交活跃于太行山一代,脸上刺有“赤心报国,誓杀金贼”的一支义军是()。
神圣同盟开始分裂的标志是()。
中华人民共和国恢复在联合国合法席位的时间是()。
陈云在哪次会议上发表了《目前财政经济的情况和克服困难的若干办法》的重要讲话?()
阅读下列材料,回答问题:材料一:列宁说:“我们在夺取政权时便知道,不存在将资本主义制度具体改造成社会主义制度的现存方法……我不知道哪位社会主义者处理过这类问题……我们必须根据实践作出判断。”——摘自《苏联
三国时期,魏、蜀、吴三国灭亡的历史顺序是()。
“三世纪危机”后,罗马统治者利用基督教并使其成为帝国统治的精神支柱。标志教会与帝国政权合流的会议是()
若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。(1)先来先服务算法;(2)最短寻找时间
对下列4个序列用快速排序方法进行排序,以序列的第1个元素为基准进行划分。在第1趟划分过程中,元素移动次数最多的是()。
随机试题
延迟性休克需快速液体复苏,尿量要达到多少最满意
编制进度计划的工作成果主要包括()
某工程建设过程中,业主由于经营不善倒闭,则()。
金融期货的功能是通过期货交易把价格风险转移给愿意承担风险的人,以达到投机获利的目的。()
资料(一)迪康集团有限责任公司(以下简称迪康集团)为国有控股公司.其前身为华虹电视机厂和科芯电子产品研究所,2001年改制后,华虹电视机厂和科芯电子产品研究所合并成立了迪康有限责任公司,2004年,成立了迪康集团有限责任公司,下辖海兴科技股份有限
Ca与肌钙蛋白的结合与解离是触发肌肉收缩的关键因素。( )
下列选项中,应以一罪定罪处罚的是()(2016年一专一第16题)
ThefoundersoftheChicagoschoolofsociology,RobertParkandErnestBurgess,attemptedtodevelopadynamicmodelofthecit
A、Apassport.B、Acheck.C、Abankbook.D、Aform.A本题为细节题。
Anindustrialsociety,especiallyoneascentralizedandconcentratedasthatofBritain,isheavilydependentoncertainessent
最新回复
(
0
)