文章

74

粉丝

0

获赞

5

访问

9.0k

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


评分及理由

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

得分:3分

理由:学生给出了基本正确的设计思想:统计所有顶点的度,检查度为奇数的顶点个数。但表述存在不严谨之处:“若大于2则返回0,存在EL路径 反之则返回1”逻辑顺序和表述有些混乱(根据上下文,其意应为“若大于2则返回0,否则返回1”),且未明确说明判断条件是“奇度顶点个数为0或2”。扣1分。

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

得分:6分

理由:算法框架正确,但代码存在多处错误:
1. 数组初始化语法错误:`int A[numV] = 0;` 和 `int A[numV] = {0};` 在C语言中(VLA)都不完全正确,且后者在部分编译器下可能允许但非标准。应使用 `int A[MAXV] = {0};` 或动态分配。
2. 内层循环中 `if(i == j) j++;` 意图是跳过自环,但若 `j++` 后可能越界,且逻辑不清晰。邻接矩阵存储无向图,自环通常需特殊处理,但题目未明确说明,标准答案也未处理。此处属于冗余且可能导致错误的代码。
3. 访问邻接矩阵时误写为 `Edge[i][j]`,应为 `G.Edge[i][j]`,这是严重语法错误。
4. 判断条件 `if(odd == 1) return 0;` 正确,但结合前面的 `if(odd > 2) return 0;`,整体逻辑可以得出正确结果(奇度顶点数为0或2时返回1)。但代码结构不如标准答案清晰。
综合以上错误,扣3分。

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

得分:1分

理由:空间复杂度O(n)正确。但时间复杂度分析错误:算法需要遍历邻接矩阵,时间复杂度应为O(n²),而不是O(MAX(n, m))。在邻接矩阵存储下,m最大为O(n²),但表述不准确。扣1分。

题目总分:3+6+1=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发