题目描述试实现拓扑排序算法。函数void FindInDegree(ALGraph G,int indegree[])实现图中各个顶点入度的统计;函数int TopologicalSort(ALGraph G , int topo[])获取拓扑序列。
函数接口定义:
void FindInDegree(ALGraph G,int indegree[]);
int TopologicalSort(ALGraph G , int topo[]);
其中 G 是基于邻接表及逆邻接表存储表示的有向图,indegree存放个顶点的入度,topo存放拓扑序列。
裁判测试程序样例:
#include <iostream>
using namespace std;
#define MVNum 100
typedef char VerTexType;
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
}ArcNode;
typedef struct VNode{
VerTexType data;
ArcNode *firstarc;
}VNode, AdjList[MVNum];
typedef struct{
AdjList vertices; //邻接表
AdjList converse_vertices;//逆邻接表
int vexnum, arcnum;
}ALGraph;
int CreateUDG(ALGraph &G);//创建图,实现细节隐藏
void FindInDegree(