TopologicalSort拓扑排序
时间:2019-08-24
本文章向大家介绍TopologicalSort拓扑排序,主要包括TopologicalSort拓扑排序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
拓扑排序算法每次选取图中入度为零的一个顶点,再将以该顶点为起点的弧删除,再从更新之后的图中选取下一个入度为零的顶点,其需要一个栈S以存储当前图中入度为零的顶点,以及各个顶点当前的入度数组indegree[ ]。
bool TopologicalSort(Graph G) { InitStack(S); int i; //初始化栈,将一开始入度为零的顶点入栈 for(i = 0;i < G.xevnum;++i){ if(indegree[i] == 0) push(S,i); } int count = 0; //当栈不为空,说明还有顶点可以加入排序 if(!EmptyStack(S)){ push(S,i); //要访问的顶点出栈 printf("%d",G.adjlist[i].data]); //访问该顶点 count++; //计数器加1 for(ArcNode *p = G.vertices[i].firstarc;p;p = p -> nextacr){ //依次删除以顶点i为起点的弧,并更新数组indegree[]和栈 v = p -> adjvex; if(!--indegree[v]) push(S,i); } } if(count != G.vexnum) return false; //计数器与图中顶点个数不符,说明有回路存在 else return true; }
原文地址:https://www.cnblogs.com/strolling-leisurely/p/11406300.html
- im协议设计选型(上)
- iOS学习——UIAlertController详解
- iOS学习——获取iOS设备的各种信息
- iOS学习——属性引用self.xx与_xx的区别
- iOS学习——iOS 整体框架及类继承框架图
- iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究
- iOS学习——iOS常用的存储方式
- iOS学习——内存泄漏检查及原因分析
- IOS学习——iphone X的适配
- 使用PowerShell自动部署ASP.NetCore程序到IIS
- ios学习——键盘的收起
- IOS学习7——cocoapod安装与使用教程
- 使用Docker环境快速搭建靶机环境
- Java标准I/O流编程一览笔录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- START GROUP_REPLICATION可以将恢复凭据作为参数
- MySQL Shell转储和加载第1部分:演示!
- MySQL Shell转储和加载第2部分:基准测试
- MySQL Shell转储和加载第3部分:加载转储
- Hadoop【单机安装-测试程序WordCount】
- MySQL Shell转储和加载第4部分:转储实例和模式
- 【创建模式】--工厂模式
- 【创建模式】--Singleton
- Mapreduce 历史服务 配置启动查看
- Yarn 的日志聚集功能配置使用
- HDFS 的垃圾回收配置
- 配置SSH无密码登录
- OpenCV学习一《Linux下安装OpenCV》
- InnoDB的数据锁–第1部分“简介”
- Kafka中的再均衡