拓扑排序,数据结构学习笔记8.1.4
来源:互联网 发布:中文翻译韩文软件 编辑:程序博客网 时间:2024/06/04 18:33
/* 邻接表存储 - 拓扑排序算法 */ bool TopSort( LGraph Graph, Vertex TopOrder[] ) { /* 对Graph进行拓扑排序, TopOrder[]顺序存储排序后的顶点下标 */ int Indegree[MaxVertexNum], cnt; Vertex V; PtrToAdjVNode W; Queue Q = CreateQueue( Graph->Nv ); /* 初始化Indegree[] */ for (V=0; V<Graph->Nv; V++) Indegree[V] = 0; /* 遍历图,得到Indegree[] */ for (V=0; V<Graph->Nv; V++) for (W=Graph->G[V].FirstEdge; W; W=W->Next) Indegree[W->AdjV]++; /* 对有向边<V, W->AdjV>累计终点的入度 */ /* 将所有入度为0的顶点入列 */ for (V=0; V<Graph->Nv; V++) if ( Indegree[V]==0 ) AddQ(Q, V); /* 下面进入拓扑排序 */ cnt = 0; while( !IsEmpty(Q) ){ V = DeleteQ(Q); /* 弹出一个入度为0的顶点 */ TopOrder[cnt++] = V; /* 将之存为结果序列的下一个元素 */ /* 对V的每个邻接点W->AdjV */ for ( W=Graph->G[V].FirstEdge; W; W=W->Next ) if ( --Indegree[W->AdjV] == 0 )/* 若删除V使得W->AdjV入度为0 */ AddQ(Q, W->AdjV); /* 则该顶点入列 */ } /* while结束*/ if ( cnt != Graph->Nv ) return false; /* 说明图中有回路, 返回不成功标志 */ else return true; }
0 0
- 拓扑排序,数据结构学习笔记8.1.4
- 数据结构学习笔记 --- 图(拓扑排序)
- 数据结构学习笔记 --- 图(拓扑排序)
- 【学习笔记----数据结构21-图的拓扑排序】
- 数据结构与算法分析学习笔记(2)--拓扑排序
- 拓扑排序学习笔记-Java
- 数据结构学习_图(1)拓扑排序
- 数据结构学习笔记(十)-图的最小生成树与拓扑排序
- 《数据结构与算法》学习笔记30 有向图的拓扑排序
- 数据结构学习笔记----排序
- 数据结构--拓扑排序
- 【数据结构】拓扑排序_TopologicalSort
- 数据结构-拓扑排序
- 数据结构:图--拓扑排序
- 数据结构:图--拓扑排序
- 数据结构之拓扑排序
- 【数据结构】拓扑排序算法
- 数据结构--拓扑排序
- 火车入站
- 神经网络训练样本制作_VOC格式_FOR_YOLO(Darknet)_AND_PVANet(FasterRCNN)
- python3输出不换行
- Netty入门
- 详解centos6和centos7防火墙的关闭
- 拓扑排序,数据结构学习笔记8.1.4
- React native初次使用的各种坑
- 牛客网 素数伴侣(二分图最大匹配,匈牙利算法)
- java线程池-3
- 接口的使用—自定义view点击事件的接口回调
- 神秘的程序员
- CSS优先级
- 【numpy 入门】-- 基本操作(1)
- Android 播放音乐