实验报告要求:

一、     实验目的

熟习使用对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)