通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"考研真题" 试卷中 2021年考研408计算机统考真题在线评测(附答案) 中有题目如下:
第1题
(15 分)已知无向连通图 G 由顶点集 V 和边集 E 组成|E|>0,当 G 中度为奇数的顶点个数 为不大于 2 的偶数时,G 存在包含所有边且长度为|E|的路径(称为 EL 路径),设图 G 采用邻接 矩阵存储,类型定义如下:
Typedef struct{ //图的定义 int numVertices,numEdges; //图中实际的顶点数和边数 Char VertticesList[MAXV]; //顶点表。MAXV 为已定义常量 Int Edge[MAXV][MAXV]; //邻接矩阵 };MGraph;
请设计算法:int IsExistEL(MGraph G),判断 G 是否存在 EL 路径,若存在,则返回 1,否则,返回 0,要求:
(1)给出算法的基本设计思想。
(2)根据设计思想采用 C 或者 C++语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
【答案解析】
(1)算法的基本设计思想
对于采用邻接矩阵存储的无向图,邻接矩阵每一行(列)中非零元素的个数为本行(列)对应顶点的度。可以依次计算连通图 G 中各顶点的度,并记录度为奇数的顶点个数,若个数为 0或 2,则返回 1,否则返回 0。
(2)算法实现
Int IsExistEL(MGraph G) //采用邻接矩阵存储,判断图是否存在 EL 路径 { int degree,i,j, count=0; for(i=0;I<G.numVertices;i++) { degree=0; for(j=0;j<G.numVertices;j++) //依次计算各个顶点的度 degree+=G.Edge[i][j]; if(degree%2!=0) count++; //对度为奇数的顶点计数 } if(count ==0 || count == 2) return 1; //存在 EL 路径,返回 1 else return 0; //不存在 EL 路径,返回 0 }
(3)算法的时间复杂度和空间复杂度
本参考答案给出的算法的时间复杂度是 O(n^2),空间复杂度是 O(1)。
所属试卷:2021年考研408计算机统考真题在线评测(附答案)
下列关于C++预定义流对象的叙述中,正确的是
下列有关类成员的叙述中,正确的是。
设某二叉树的前序遍历为ABC,中序遍历为CBA,则该二
在面向对象方法中,不属于“对象”基本特点的是( )。
有以下程序:程序运行后的输出结果是( )。
若有定义语句:在其后执行语句:z=0.9+x/y;则z
已知x={‘a’:’b’,’c’:’d’},那么表达式
表达式':'.join('hello word.'.s
若x=0123,则表达式(5+(int)(x)&(-2
已有如下定义和输入语句,若要求a1,a2,a3,c1,
单链表的结点类型定义为:指针p指向链表中间的某一个结点
设有char a,b;若要通过a&b运算屏蔽掉a中的其
给定程序MODI1.C是建立一个带头结点的单向链表,并
若x=2,y=3,则x&y的结果是( )。
vi编辑器具有三种工作模式,即:命令模式、文本编辑模式
默认情况下,超级用户和普通用户的登录提示符分别是:“_
在Linux 中,管道分为 ______ 种类型,若创
通过将______动态链入块设备控制结构blk_dev
下面哪个协议使用了二个以上的端口?
(8 分)某计算机用硬盘作为启动盘,硬盘第一个扇区存放
计算机系统用小端(Little Endian)和大端
使用共用体变量,不可以( )。
设char a,b;,若想通过a&&b运算保留a的第1
以下叙述中正确的是( )。
如果函数不要求返回值,可用_____来定义函数为空类型
某二叉树共有13个结点,其中有4个度为1的结点,则叶子
以下叙述中正确的是
(切割绳子)有 n条绳子,每条绳子的长度已知且均为正整
(交朋友)根据社会学研究表明,人们都喜欢找和自己身高相
关于CPU下面哪个说法是正确的:
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2