评分及理由
(1)得分及理由(满分4分)
得分:3分
理由:学生的基本设计思想基本正确,提到了拓扑排序过程中需要保证每个时刻只有一个入度为0的顶点。但存在以下问题:
- 错误地要求"只有1个入度为0的顶点和1个出度为0的顶点" - 拓扑序列唯一性只与入度为0的顶点数量有关,与出度为0的顶点无关,这是一个逻辑错误
- 其他部分思路正确,包括计算入度、从入度为0的顶点开始、每次只能有一个入度为0的新顶点等
(2)得分及理由(满分9分)
得分:6分
理由:代码实现基本遵循了拓扑排序的思路,但存在以下逻辑错误:
- 错误检查了出度为0的顶点(flag变量相关逻辑),这是多余的且不正确的
- 变量初始化问题:int In[n]和Out[n]使用变长数组,在标准C++中不推荐
- 循环条件while(n)可能有问题,n在循环中递减,但G.numVertices应该保持不变
- 缺少对图中可能存在的环的检测
- 代码整体逻辑基本正确,实现了核心的拓扑排序过程
题目总分:3+6=9分
登录后发布评论
暂无评论,来抢沙发