#156. 【2024考研408】判断图G是否有唯一的拓扑排序

【2024考研408】判断图G是否有唯一的拓扑排序

问题描述

已知图G采用邻接矩阵存储,其定义如下:

Typedef struct{
int numberVertices,numEdges; //图的顶点数和有向边数
char VerticesList[maxV]; //顶点表,MAXV为已定义常量
int edge[maxV][maxV]; //邻接矩阵
}MGraph;

你需要实现一个int uniquely(MGraph G)函数,判断 GG 是否有唯一的拓扑排序,是返回 11 否则返回 00

int uniquely(MGraph G){
//判断G是否有唯一的拓扑排序,是1否则返回0
}
  1. 给出算法的设计思想。
  2. 根据算法思想,写出C/C++描述,并注释

样例

你只需要提交一个cpp文件,里面包含int uniquely(MGraph G)即可。并且头文件引用dashoj_2024_408.h。详情如下:

#include"dashoj_2024_408.h"

int uniquely(MGraph G){
  return 1;
}

注意你只需要实现int uniquely(MGraph G)不要提交任何额外的代码。

因为dashoj_2024_408.h没有引用任何STL的头文件,所以如果提交STL会直接编译错误。

数据范围

1numberVertices100 1\le numberVertices \le 100

1numEdges1000 1 \le numEdges \le 1000

maxV=105 maxV = 105

保证给定的图 GG 是连通图

int edge[maxV][maxV]默认都是 00,如果有相连的边值为 11

下标都是从 11 开始