首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
对于一个使用邻接表存储的有向图G,可以利用深度优先遍历方法,对该图中结点进行拓扑排序。其基本思想是:在遍历过程中,每访问一个顶点,就将其邻接到的顶点的入度减1,并对其未访问的、入度为0的邻接到的顶点进行递归。 (1)给出完成上述功能的图的邻接表定义
对于一个使用邻接表存储的有向图G,可以利用深度优先遍历方法,对该图中结点进行拓扑排序。其基本思想是:在遍历过程中,每访问一个顶点,就将其邻接到的顶点的入度减1,并对其未访问的、入度为0的邻接到的顶点进行递归。 (1)给出完成上述功能的图的邻接表定义
admin
2019-08-01
56
问题
对于一个使用邻接表存储的有向图G,可以利用深度优先遍历方法,对该图中结点进行拓扑排序。其基本思想是:在遍历过程中,每访问一个顶点,就将其邻接到的顶点的入度减1,并对其未访问的、入度为0的邻接到的顶点进行递归。
(1)给出完成上述功能的图的邻接表定义。
(2)定义在算法中使用的全局辅助数组。
(3)写出在遍历图的同时进行拓扑排序的算法。
选项
答案
(1)邻接表定义 typedef struct ArcNode{ int adjvex; struct ArcNode *next; }ArcNode; typedef struct VNode{ vertype data; ArcNode *firstarc; }VNode,AdjList[MAX]; (2)全局数组定义 int visited[]=0;finished[]=0;flag=1; //flag测试拓扑排序是否成功 ArcNode *final=null: //final是指向顶点链表的指针,初始化为0 (3)算法 void dfs(AdjList g,vertype v){ //以顶点v开始深度优先遍历有向图g,顶点信息就是顶点编号 ArcNode *t: //指向边结点的临时变量 printf(“%d”,v); visited[v]=1; p=g[v].firstarc; while(p!=null){ j=p一>adjvex; if(visited[j]==1&&finished[j]==0)flag=0; //dis结束前出现回边 else if(visited[j]==0){dfs(g,j);finished[j]=1;} p=p一>next: }//while t=(AreNode*)malloc(sizeof(AreNode)); //申请边结点 t->adjvex=v;t->next=final;final=t; //将该顶点插入链表 }//dfs结束 im dfs_Topsort(Adjlist g){ //对以邻接表为存储结构的有向图进行拓扑排序,拓扑成功返回1,否则返回0 i=1; while(flag&&i<=n) if(visited.[i]==0){dfs(g,i);finished[i]=1;}//if return(flag): } 提示:此题考查的知识点是图的遍历。对有向图进行深度优先遍历可以判定图中是否有回路。若从有向图某个顶点v出发遍历,在dfs(v)结束之前,出现从顶点u到顶点v的回边,图中必存在环。由于dfs产生的是逆拓扑排序,故设一类型是指向邻接表的边结点的全局指针变量final,在dfs函数退出时,把顶点v插入到final所指的链表中,链表中的结点就是一个正常的拓扑序列。
解析
转载请注明原文地址:https://kaotiyun.com/show/skCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
第三次科技革命初期,苏联领先于美国的新兴科学技术成就是()。
下列哪一部不是柏拉图的作品?()
公元843年,查理曼的三个孙子签订《凡尔登条约》三分查理曼帝国,奠定的三个国家的形是()。①德意志②法兰西③西班牙④意大利
武则天时期,为了管理天山以北的广大区域而设立了()。
苏联实行新经济政策和美国推行罗斯福新政的相似点是()。①面临极为困难的经济形势②国家颁布政策法令强制干预经济③最主要内容是调整和复兴工业④通过发展商品生产来恢复农业
民初政党林立,其中进步党是由几个党派合并而成的,其中不包括()。
两极格局结束后,世界形势发展的总态势的基本特点()
设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。若某进程最多需要6页(Page)数据存储空间,页的大小为1KB,操作系统采用固定分配局部置换策略为此进程分配4个页框(PageFrame)。在时刻260前的该进程访问情况见表B一2(访问位即使
已知数组A[1……n]的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为负整数,右边所有元素为正整数。不要求对这些元素排序。(1)给出算法的基本设计思想;(2)根据设计思想,采用C或C++
随机试题
某企业向人民法院申请宣告破产,法院受理了申请,企业拖欠职工工资20万元,下列说法正确的有:
Thereneversomanyforeignguestscometoourcityastoday,solearningEnglishisimportant.
下列何种药物具有抑制胃酸分泌的作用
A.中度等渗性缺水B.中度高渗性缺水C.重度高渗性缺水D.轻度低渗性缺水E.中度低渗性缺水患者极度口渴,乏力,眼窝明显凹陷,唇舌干燥,皮肤弹性差,心率加快,尿少,尿比重增高,提示
为股票发行出具法律意见书的律师事务所律师,应遵守以下哪一项规定?()
背景A建筑安装工程公司以施工总承包的方式承接某大厦工程施工,在征得建设单位同意后将基坑工程分包给具备相应资质条件的B建筑公司。就双方的相关责任划分,分包合同中作出如下约定:B公司对其施工范围内的工程施工总平面布置可自行确定和修改;B公司负责编制施
记入交易账户的头寸应当具有明确的头寸管理政策和程序,包括()。
产品处于生命周期的不同阶段,应该采取不同的经营战略,下列说法正确的有()。
事先安排的观光景点,不能游览,旅行社应退还景点门票、导游费,并赔偿退还费用30%的违约金。()
历史教学资源一般分为()。
最新回复
(
0
)