拓扑排序

版权声明:小白有写的不好不对的地方请指出 https://blog.csdn.net/smoggyxhdz/article/details/80440723
vector<int> G[maxv]; //邻接表 
int n,inDegree[maxv];//顶点数,入度
bool toplogicalSort()
{
	int num=0;       //记录顶点数
	queue<int> q;
	for(int i=0;i<n;i++)
	{
		if(inDegree[i]==0)
		{
			q.push(i);
		}
	} 
	while(!q.empty())
	{
		int u=q.front();
		q.pop();
		for(int i=0;i<G[u].size();i++)
		{
			int v=G[u][v];
			inDegree[v]--;
			if(inDegree[v]==0)
				q.push(v);
		}
		num++;
	}
	if(num==n)
		return true;
	else
		return false;
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页