文章
266
粉丝
21
获赞
1
访问
12.6k

评分及理由
(1)得分及理由(满分4分)
得分:2分
理由:学生答案的基本设计思想存在部分正确性。正确之处包括:使用数组存储顶点入度,通过统计入度为0的顶点个数来判断拓扑序列的唯一性,以及通过移除入度为0的顶点来更新图。但是,答案中存在以下逻辑错误:
由于思路核心正确但细节有误,扣2分。
(2)得分及理由(满分9分)
得分:3分
理由:学生答案的代码实现存在严重逻辑错误,具体如下:
for(int i = 0; i < MAXV; i++),但MAXV是常量,可能大于实际顶点数G.numVertices,应使用G.numVertices。A[j] = A[j] + G.Edge[j][k];实际计算的是顶点的出度,而非入度。正确应计算G.Edge[k][j](即列和)。if(A[j] == 0)并累加sum,这会导致sum统计不准确。G.Edge[w][k] = 0;修改原图,但标准方法应更新入度数组,且修改原图可能影响后续操作。尽管代码结构有拓扑排序的雏形,但核心逻辑(入度计算、唯一性判断、更新操作)均错误,扣6分。考虑到部分思路正确(如使用数组记录、查找入度为0顶点),给予3分。
题目总分:2+3=5分
登录后发布评论
暂无评论,来抢沙发