拓扑排序是一种在有向无环图(DAG)中对节点进行排序的算法。在拓扑排序中,图的节点表示任务或依赖关系,边表示任务间的依赖关系。拓扑排序的结果是一个线性排序,该排序满足任何依赖关系:如果任务 A 依赖于任务 B,则任务 B 必须在任务 A 之前执行。
在 C# 中,我们可以使用深度优先搜索(DFS)和拓扑排序算法来解决这个问题。下面是一个示例代码,演示了如何实现拓扑排序算法:
using System;
using System.Collections.Generic;
class Graph
{
private int V; // 图中节点的数量
private List<List<int>> adj; // 邻接列表
// 构造函数
public Graph(int v)
{
V = v;
adj = new List<List<int>>(v);
for (int i = 0; i < v; ++i)
adj.Add(new<