实验报告要求:
一、 实验目的
熟习使用对AOV网进行拓扑排序的方法和步骤。
二、 实验问题描述
对某个AOV网中中选择一个没有前驱的顶点(该顶点的入度为0)并且输出它。从网中删去该顶点,并且删去从该顶点发出的全部胡向边。完成对AOV网的拓扑排序工作。
三、实验步骤
1、实验问题分析
顶点表结点结构的描述为:
typedef struct vNode{
int indegree;
vertextype vertex;
Edgenode *firstedge;
}vertexnode;
算法中设置了一个堆栈,凡是网中入度为0的顶点都将其入栈。1.将没有前驱的顶点(indegrr域为0)压入栈。2.从栈中退出栈顶元素输出,并把该顶点引出的所有有向边删去。3.将新的入度为0的顶点再入堆栈。4.重复2~3步,直到栈为空为止。此时或者是已经输出全部顶点,或者剩下的顶点中没有入度为0的顶点。
2、功能函数设计
1.创建一个有向图,然后再对其进行拓扑排序。函数原型为:Int create(Algraph *G)
2.拓扑排序模块:对以带入度的邻接链表为存储结构的图G,输出其一种拓扑序列。函数原型为:int top_sort(Algraph *G,int n)