tuopu.cpp

来自「有关拓扑排序的问题」· C++ 代码 · 共 49 行

CPP
49
字号
#include<iostream>
#include"tuopu.h"

void Toposort(adjlist GL,int n)
{
	int i,j,k,top,m=0;
	edgenode  * p;
	int *d=new int[n];
	for(i=0;i<n;i++)
	{
		p=GL[i];
		while(p!=NULL)
		{
			j=p->adjVex;
			d[j]++;
			p=p->next;
		}
	}
	top=-1;
	for(i=0;i<n;i++)
		if(d[i]==0)
		{
			d[i]=top;
			top=i;
		}
		while(top=-1)
		{
			j=top;
			top=d[top];
			cout<<j<<' '<<endl;
			m++;
			p=GL[j];
			while(p!=NULL)
			{
				k=p->adjVex;
				d[k]--;
				if(d[k]==0)
				{
					d[k]=top;
					top=k;
				}
				p=p->next;
			}
		}
		cout<<endl;
		if(m<n)
			cout<<"The network has a cycle!"<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?