用顶点表示活动、有向边表示活动之间的先后关系的有向无环(DAG)图称为顶点活动网,简称AOV网。对于一个又向无环图DAG,若将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,<u,v>属于边的集合,若u出现在v之前,这样的线性序列称为拓扑序列。
拓扑排序
基本思想:
1.在有向图中选取入度为0的顶点,并输出。
2.从有向图中删除该顶点及其该顶点的出边。
3.重复1和2。
4.输出剩余的无前驱结点。
#if ! defined(ALGRAPH_H)
#define ALGRAPH_H
#include<stdio.h>
#include<stdlib.h>
#define MaxVertexNum 50
typedef char VertexType;
typedef struct node{
int adjvex;//顶点的序号
struct node *next;//指向下一条边的指针
}EdgeNode;
typedef struct vnode{
VertexType vertex;//顶点表示
EdgeNode *link;//第一个边
}VNode,Adjlist[MaxVertexNum];
typedef Adjlist ALGraph;//定义为图类型
/******拓扑排序******
基本思路:确定个节点的入度,取出