拓扑排序 C++实现 |
您所在的位置:网站首页 › 数据结构中vexnum是什么意思 › 拓扑排序 C++实现 |
【拓扑排序主要思想】 有向图可以拓扑排序的条件是:图中没有环。 具体方法: ⑴ 从图中选择一个入度为0的点加入拓扑序列。 ⑵ 从图中删除该结点以及它的所有出边(即与之相邻点入度减1)。 反复执行这两个步骤,直到所有结点都已经进入拓扑序列。
参照严蔚敏的《数据结构(C语言版)》教材,163页有图的邻接表结构定义方法,181-182有课程优先关系的用例和拓扑排序的核心代码。
代码如下: #include #include #include using namespace std; ifstream fin("in.txt"); #define MAX_VERTEX_NUM 26 stack s; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; ArcNode(){nextarc=0;} // InfoType *info; }ArcNode; typedef struct VNode{ int data; ArcNode *firstarc; VNode(){firstarc=0;} }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph; bool TopologicalSort(ALGraph G,int *indegree) { int i,k; for(i=1;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |