#include <stdio.h>
#include <stdlib.h>
// 定义有向图的邻接表节点结构
typedef struct AdjListNode {
int dest;
struct AdjListNode* next;
} AdjListNode;
// 定义有向图的邻接表结构
typedef struct AdjList {
struct AdjListNode* head;
} AdjList;
// 定义有向图结构
typedef struct Graph {
int V; // 顶点数
struct AdjList* array;
} Graph;
// 创建有向图的邻接表节点
AdjListNode* createAdjListNode(int dest) {
AdjListNode* newNode = (AdjListNode*)malloc(sizeof(AdjListNode));
newNode->dest = dest;
newNode->next = NULL;
return newNode;
}
// 创建有向图
Graph* createGraph(int V) {
Graph* graph = (Graph*)malloc(sizeof(Graph));
graph->V = V;
graph->array = (AdjList*)malloc(V * sizeof(AdjList));
for (int i = 0; i < V; ++i) {