c++ 拓扑排序 算法(经典实现)
发布时间
阅读量:
阅读量
设想在一个有向图结构中,若存在节点a指向节点b的情况,则可将其解读为事件a是事件b发生的先决条件,这意味着事件b的输出必须安排在事件a之后。由此便构建出一种有序的排列关系。针对此类排序问题,拓扑排序算法正是专门设计用于解决的工具。这一过程原理十分直观,现在就来深入了解其内容吧!
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<vector>
#include<queue>
#define MAXN 1000
using namespace std;
struct Node{
int indegree; //入度
vector<int> next; //指向的点的编号
}node[MAXN];
queue<int>ans; //存放答案
int n, m; //点数和边数
void init(){ //初始化数据
for (int i = 0; i < n; i++)
node[i].indegree = 0;
}
//如果图中出现环或独立点则不能进行拓扑排序,返回值是成功排序
全部评论 (0)
还没有任何评论哟~
