文章
196
粉丝
0
获赞
1
访问
25.8k
评分及理由
(1)得分及理由(满分4分)
学生答案的基本设计思想与标准答案完全一致:通过计算入度数组,在每一轮循环中寻找入度为0的顶点,如果存在多个入度为0的顶点则返回0(表示拓扑序列不唯一),如果没有入度为0的顶点则返回0(表示存在环),如果始终只有一个入度为0的顶点则最终返回1。思想描述清晰准确,得4分。
(2)得分及理由(满分9分)
算法实现与标准答案逻辑一致,但在以下细节存在瑕疵:
1. 内存初始化语句有误:memset(degree, sizeof(int) * MAXV, 0)
参数顺序错误,应为 memset(degree, 0, sizeof(int) * MAXV)
。但根据题目要求,识别错误导致的语法问题不扣分。
2. 循环控制变量 n
的使用与标准答案不同,但逻辑正确,不扣分。
3. 在找到入度为0的顶点后,没有将其入度标记为-1(避免重复处理),但通过循环控制变量 n
确保了每个顶点只处理一次,逻辑正确,不扣分。
4. 代码结构清晰,关键步骤有注释,内存管理完整(malloc/free)。
综合以上分析,实现部分没有逻辑错误,得9分。
题目总分:4+9=13分
登录后发布评论
暂无评论,来抢沙发