文章
74
粉丝
0
获赞
0
访问
49.1k
(1)算法思想:初始化计数器count=0遍历邻接矩阵,若一个节点的出度大于入度,就计数器count+1,并输出节点。最后返回计数器的个数。
(2)代码:
int printVertices(MGraph G){
int n=MAXV;
int count=0;//计数器,用于记录K顶点的个数
for(int i=0;i<n;i++){
int outdegree=0;//节点的出度
int indegree=0;//节点的入度
for(int j=0;j<n;j++){
if(G.Edge[i][j]==1){
indegree++;
}
if(G.Edge[j][i]==1){
outdegree++;
}
}
if(indegree<outdegree){
count++;
printf(VerticesList[i]);//输出K顶点
}
}
return count;
}
评分及理由
(1)得分及理由(满分4分)
学生给出的算法思想基本正确,提到了遍历邻接矩阵、统计每个顶点的出度和入度、比较出度和入度并计数输出。但描述较为简略,没有详细说明如何通过邻接矩阵计算入度和出度(特别是入度需要遍历列而不是行),也没有提到需要借助VerticesList来输出顶点名称。扣1分。
得分:3分
(2)得分及理由(满分9分)
代码实现存在以下问题:
登录后发布评论
暂无评论,来抢沙发