永发信息网

采用邻接矩阵存储结构对有向图进行拓扑排序的算法

答案:2  悬赏:30  手机版
解决时间 2021-03-09 18:38
  • 提问者网友:疯孩纸
  • 2021-03-09 03:45
采用邻接矩阵存储结构对有向图进行拓扑排序的算法
最佳答案
  • 五星知识达人网友:鱼忧
  • 2021-03-09 05:09
lint topsort( ALGraph *G)
{ int i,j,k,top =-1;
EdgeNode *ptr;
for(i=0;in;i++)
{ if(G->adjlist[i].indegree==0)
{ G->adjlist[i].indegree=top;
top=i; }
}
{if(top==-1) return -1;
j=top;
for(i=0;in;i++)
{ if(top==-1) return -1;
j=top;
top=G->adjlist[top].indegree;
printf("->%s",G->adjlist[j].vertex);
ptr=G->adjlist[j].firstedge;
{ k=ptr->adjvex;
G->adjlist[k].indegree--;
if(G->adjlist[k].indegree==0)
while(ptr!=NULL)
{
G->adjlist[k].indegree=top;
top=k;
}
ptr=ptr->next;
}
}
}
全部回答
  • 1楼网友:長槍戰八方
  • 2021-03-09 06:10
#include"iostream.h" const int n=8; const int e=15; typedef int elemtype ; bool visited[n+1]; class link { public: elemtype data; link *next; }; class graph { public: link a[n+1]; void creatlink() { int i,j,k; link *s; for(i=1;i<=n;i++) { a[i].data=i; a[i].next=null; } for(k=1;k<=e;k++) { cout<<"请输入一条边"; cin>>i>>j; cout<data=j; s->next=a[i].next; a[j].next=s; } } void dfs1(int i) { link *p; coutdata); p=p->next; } } void bfs1(int i) { int q[n+1]; int f,r; link *p; f=r=0; coutdata]=true; r++;q[r]=p->data; } p=p->next; } } } }; void main() { link *p;int yn=1; graph g; g.creatlink(); while(yn){ for(int i=1;i<=n;i++) { p=g.a[i].next; cout<"; while(p->next!=null) { cout<data<<"->"; p=p->next; } cout<data<>i; cout<>i; cout<>yn; } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯