用C语言实现有向无环图的拓扑排序算法
发布时间
阅读量:
阅读量
对AOV网实施拓扑排序的核心原理在于:首先在AOV网中寻找一个入度为零的顶点并将其输出,随后移除该顶点,并同时删除所有以该顶点作为终点的边,之后持续执行上述操作,直至所有顶点均被输出或AOV网中不再存在入度为零的顶点。
在此过程中,所采用的图数据结构为邻接表,并在顶点表中额外添加了用于记录顶点入度的信息项。
以下代码已在DEV C++环境中成功编译并运行通过。
#include <stdio.h>
#include <stdlib.h>
#define MAXVEX 20
typedef struct EdgeNode
{
int adjvex;//邻接点域,存储该顶点对应的下标
struct EdgeNode *next;//链域,指向下一个邻接点
}EdgeNode;
typedef struct VertexNode
{
int in;//顶点入度
char data;//顶点域,存储顶点信息
EdgeNode *firstedge;//边表头指针
}VertexNode,AdjList[MAXVEX];
typedef struct
{
全部评论 (0)
还没有任何评论哟~
