Advertisement

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)

还没有任何评论哟~