文章

317

粉丝

1

获赞

220

访问

83.2k

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


评分及理由

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

得分:1分

理由:学生的基本设计思想提到了“遍历顶点的列,获取入度是否为0”,这与标准答案中计算入度的思路一致。同时,学生也提到了“如果标记数大于1,则无唯一拓扑序列”,这与判断唯一性的核心思想(每一步只能有一个入度为0的顶点)相符。但是,学生的描述较为混乱,没有清晰说明拓扑排序的迭代过程(如每次移除一个入度为0的顶点并更新其他顶点的入度),也没有明确说明如何初始化入度数组以及如何处理没有入度为0顶点的情况(即存在环)。因此,只能给部分分数。

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

得分:2分

理由:学生的代码尝试实现了拓扑排序,但存在多处严重逻辑错误和语法错误:
1. 代码结构混乱,存在未定义的变量(如count、Tag)、语法错误(while循环条件不完整)、数组名错误(G.Verticeslist应为G.verticesList,G.Edges应为G.Edge)。
2. 入度计算方式错误:第一次识别中“degreet += G.Edge[i][j]”是累加出度而非入度;第二次识别中“degree += G.Edges[j][i]”计算的是入度,但未考虑边的权值(题目中邻接矩阵存储的是边,非0即表示有边)。
3. 没有正确模拟拓扑排序的过程:没有维护一个入度数组并动态更新,而是试图直接修改图的邻接矩阵(将出度设为0),这不能正确反映顶点被移除后对其他顶点入度的影响。
4. 循环逻辑错误:外层for循环内嵌套while循环,但while循环的条件和退出机制不明确,可能导致死循环或逻辑错误。
5. 没有处理环的情况(即没有入度为0的顶点)。
由于代码存在根本性逻辑错误,无法正确判断拓扑序列的唯一性,因此只能给予少量分数。

题目总分:1+2=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发