采用邻接矩阵存储结构对有向图进行拓扑排序的算法
答案: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;
}
}
}
{ int i,j,k,top =-1;
EdgeNode *ptr;
for(i=0;i
{ if(G->adjlist[i].indegree==0)
{ G->adjlist[i].indegree=top;
top=i; }
}
{if(top==-1) return -1;
j=top;
for(i=0;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;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯