通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"考研真题" 试卷中 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计算机统考真题在线评测(附答案)
将前缀运算符“--”重载为非成员函数,下列原型中,能正
有如下的运算符重载函数定义:double operat
关键字unsigned不能修饰的类型是
有说明int a[10]={1,2,3,4,5,6,7
下面选项中的程序段,没有编译错误的是。
学生的记录由学号和成绩组成,N名学生的数据已在主函数中
有三个关系表R、S和T如下,其中三个关系对应的关键字分
有如下程序:程序运行时,输入1234<回车>,则输出结
以下程序输出结果是___________。
以下为 u盘插入usb接口后执行fdisk –l的结果
编写1个弹出式菜单的shell程序并实现其简单的菜单功
Shell程序中,对用户变量赋值有哪些方式?简要说明每
命令组合(命令表)将 ______ 来执行命令。
MYSQL查询语句中用inner join(join)
某学校的综合管理系统设计阶段,教师实体在学籍管理子系统
算法是解决问题的步骤,也就是一些列的指令序列( )
FTP工作于
有 n(n≥3)位哲学家围坐在一张圆桌边,每位哲学家交
某32位系统采用基于二级页表的请求分页存储管理方式,按
单元测试一般以 测试为主, 测试为辅。
若结点 p 与 q 在二叉树 T 的中序遍历序列中相邻
下列程序段的时间复杂度是( )。
将函数funl的入口地址赋给指针变量p的语句是____
以下叙述正确的是( )。
功能:编写函数fun(int m)求1000以内(不包
若有以下定义,则计算表达式y+=y-=m*=y后的y值
以下不合法的数值常量是
输入:15输出:( )
(切割绳子)有 n条绳子,每条绳子的长度已知且均为正整
为了统计一个非负整数的二进制形式中1 的个数,代码如下
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2