文章

66

粉丝

0

获赞

0

访问

9.3k

头像
2021年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年11月6日 21:08
阅读数 11

1.由題设,对于第i个顶点,检查矩阵的第i行和第i列,统计其度数,若为奇数则记录,最终对得到的奇数度定点作判断即可判定是否存在EL路径

2.

int IsExistEL(MGraph G){

int count = 0;

for(int i = 0; i < G.numVertices;i++){

int degree_record = 0;

for(int j = 0; j<G.numvertices;j++){

degree_record += G.[i][j] != 0;

degree_record += G.[j][i] != 0;

}

if(degree_record  % 1 == 1){

count++;

}

}

 

return count <=2 && count % 2 == 0; //为偶数且不大于2

}

3.

时间O(n^2),空间O(1)


评分及理由

(1)得分及理由(满分4分)

得分:2分

理由:学生基本理解了需要统计顶点的度并检查奇数度顶点的个数,但设计思想描述不够准确。主要问题在于:
1. 提到"检查矩阵的第i行和第i列"是不正确的,因为无向图的邻接矩阵是对称的,只需计算行或列即可,重复计算会导致度数翻倍。
2. 没有明确说明要检查奇数度顶点个数是否为0或2这一关键判断条件。
虽然思路方向正确,但存在明显错误,因此扣2分。

(2)得分及理由(满分9分)

得分:4分

理由:代码实现存在多处错误:
1. 语法错误:G.[i][j]G.[j][i]应为G.Edge[i][j]G.Edge[j][i]
2. 逻辑错误:同时计算行和列会导致度数统计翻倍
3. 逻辑错误:degree_record % 1 == 1永远为false,应该用degree_record % 2 == 1
4. 返回值逻辑错误:题目要求奇数度顶点个数为不大于2的偶数,即只能是0或2,但学生的代码count <= 2 && count % 2 == 0会错误地将count=0,2,4,...都返回1
5. 变量名拼写错误:G.numvertices应为G.numVertices
虽然代码框架基本正确,但存在严重逻辑错误和语法错误,扣5分。

...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发