数据库大神来啊、给出下列AOV网的可能的拓扑排序序列。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库大神来啊、给出下列AOV网的可能的拓扑排序序列。相关的知识,希望对你有一定的参考价值。
拓扑排序序列是否唯一?在什么情况下拓扑排序无法完成。
谢谢了啊!!!
1.C->D->B->A->E
2.D->B->C->A->E
3.D->C->B->A->E
当然,拓扑序列不一定唯一
如果图中,这里是AOV网中存在有向环,则无法完成拓扑排序。本回答被提问者采纳
如何用C++语言实现AOV网的所有拓扑排序?(最好能实现动态演示)
实现演示很麻烦,好像要用MFC吧?
参考技术A #define max 图的顶点数//弧节点的结构
typedef struct EdgeNode
int adjvex;
struct EdgeNode *next;
;
//顶点节点的结构
typedef struct Vnode
VertexType vertex;//顶点数据类型
EdgeNode *link;
Adjlist[max];
//拓扑排序算法描述
void topsort(Adjlist g)
//假设G有n个顶点、e条边的有向图,g是他的邻接表,每个节点设两个
//域vex,next,对入度为0的顶点设计带链的栈,top指示栈的指针,in为入度
readlist();//输入e条弧并建立邻接表
top=0;
for(i=1;i<=n;i++)//查入度为0的顶点,并建立链栈
if(g[i].in==0)
g[i].in=top;
top=i;
m=0;//设m为计数器计算输出的顶点个数
while(top!=0)
j=top;
top=g[top].in;//退栈
printf("%d",j);
m++;//输出顶点并计数
q=g[j].link;//q是指针,指示以j为尾的弧
while(q!=NULL)
k=q->vex;//顶点k为j的直接后继
g[k].in=g[k].in-1;//入度减1
if(g[k].in==0)
g[k].in=top;
top=k;//入度为0的顶点进栈
q=p->next;
if(m<n)
printf("the network have cycle");//输出顶点数不足n,说明网中无环
以上是关于数据库大神来啊、给出下列AOV网的可能的拓扑排序序列。的主要内容,如果未能解决你的问题,请参考以下文章