通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"考研真题" 试卷中 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计算机统考真题在线评测(附答案)
对于一个类定义,下列叙述中错误的是。
不能作为函数重载的判断依据的是。
使用 turtle 库的 turtle.fd函数和
某计算机按字节编址,采用页式虚拟存储管理方式,虚拟地址
在软件开发中,需求分析阶段产生的主要文档是( )。
有以下程序程序运行后的输出结果是( )。
C语言中的标识符分为关键字、预定义标识符和用户标识符,
有以下程序:程序运行后的输出结果是。
程序阅读题1、2、#include<iostream>
下面程序通过把类Distance声明为类Point的友
指出下列程序片段中的错误标号,写出正确语句或解释错在何
在循环语句中,_______语句的作用是提前进入下一次
对文件进行写入操作之后,_______方法用来在不关闭
Linux操作系统使用下面哪个命令查看本机的IP地址
在Red Hat Linux 9中,系统默认的用户
SELECT语句查询条件中的谓词“=ANY”与运算符
用SELECT进行模糊查询时,可以使用 或 等
SQL是一种( )语言。
数据库的三级模式之间存在着两级映像,使得数据库系统具有
(6 分)已知某排序算法:请回答下列问题。(1)若有
某“调整工资”处理模块接受一个“职称”的变量,根据职称
以下不能对二维数组a进行正确初始化的语句是( )。
预处理命令行都必须以_____号开始。
请编写函数void fun(int *dp,int n
以下叙述中正确的是
输入:5输出:( )
计算机病毐是( )。
输入: 7 ABDCEGF BDAGECF输出:
输入:wer2345d-h454-82qqq 输出:_
CPU是( )的简称。
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2