内容发布更新时间 : 2024/11/15 17:40:42星期一 下面是文章的全部内容请认真阅读。
.
int u,v; cin>>u>>v; p=new node; p->adjvex=v;
p->next=adj[u].next; adj[u].next=p; }
return 1; }
void print(int n)//邻接表打印函数 {
int i; node *p;
for(i=0;i<=n-1;i++) {
p=&adj[i]; while(p!=NULL) {
cout<
cout< void topsort(node adj[],int n) { int i; node *p; memset(indegree,0,sizeof(indegree)); for(i=0;i<=n-1;i++) { p=adj[i].next; while(p!=NULL) { indegree[p->adjvex]++; p=p->next; } } for(i=0;i<=n-1;i++) { if(indegree[i]==0) word资料 . mystack.push(i); } int count=0; while(mystack.size()!=0) { i=mystack.top(); mystack.pop(); cout< for(p=adj[i].next;p!=NULL;p=p->next) { int k=p->adjvex; indegree[k]--; if(indegree[k]==0) mystack.push(k); } } cout< if(count int main() { int n; int m; cout<<\拓扑排序算法\ cout<<\请输入顶点数及边数:\ cin>>n>>m; Create(adj,n,m); cout<<\输入的邻接表为:\ print(n); cout<<\拓扑排序结果为:\ topsort(adj,n); system(\ return 0; } 七、程序运行截图 以下图为例: word资料 . i、程序启动截图 ii、程序输入截图 iii、程序运行结果截图 word资料 . 八、实验总结 通过本次实验掌握拓扑排序的算法,了解拓扑排序的有向图的数据结构。 参考文献 1.《离散数学》 冯伟森、栾新成、石兵等编著 机械工业出版社 2.《C语言程序设计》 良银、游洪跃、旭伟等编著 清华大学出版社 3.《C++:面向对象程序设计》 涛、游洪跃等编 高等教育出版社 word资料