文章
986
粉丝
5
获赞
20
访问
251.7k

评分及理由
(1)得分及理由(满分4分)
学生答案的基本设计思想正确:通过计算入度,每次选择入度为0的顶点,更新邻接点入度,并检查每次是否只有一个入度为0的顶点。思路与标准答案一致,表述清晰。得4分。
(2)得分及理由(满分9分)
代码实现存在以下问题:
1. 入度计算部分逻辑错误:在初始化入度数组后,第一个双重循环中错误地在计算过程中检查入度是否为0并修改ino变量(ino初始为1,这里会错误地记录第一个入度为0的顶点,但此时入度计算尚未完成)。这会导致算法逻辑错误,扣3分。
2. 入度计算方式正确(degree[j] += G.Edge[i][j]),但位置不当的ino处理会影响后续逻辑,扣2分。
3. 拓扑排序循环部分逻辑基本正确:使用ino记录当前找到的入度为0的顶点,当找到多个时设为-2。但缺少对没有入度为0顶点的处理(图中存在环的情况),扣2分。
4. 变量命名和初始化有小问题(如ino初始为1而不是-1),但属于小错误,扣1分。
5. 内存管理和最终判断逻辑正确。
综上,代码部分得分为9-3-2-2-1=1分。
题目总分:4+1=5分
登录后发布评论
暂无评论,来抢沙发