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 + -
显示快捷键?