热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

拓扑排序有向无环图

拓扑排序算法描述代码算法描述拓扑排序就是对一个有向图进行排序,得到一个有序序列。找到有向图中入度为0的结点,加入到队列中,然后删除与该点


拓扑排序

    • 算法描述
    • 代码


算法描述


  • 拓扑排序就是对一个有向图进行排序,得到一个有序序列。
  • 找到有向图中入度为0的结点,加入到队列中,然后删除与该点所有关联的边,重复此操作
  • 拓扑排序可以判断改图是否有环

代码

queueq;
//priority_queue,greater>q;
//优先队列的话,会按照数值大小有顺序的输出
//此处为了理解,暂时就用简单队列
int topo()
{for(inti&#61;1;i<&#61;n;i&#43;&#43;){if(indegree[i]&#61;&#61;0){q.push(i);}}int temp;while(!q.empty()){temp&#61;q.front();//如果是优先队列&#xff0c;这里可以是top()printf("%d->",temp);q.pop();for(inti&#61;1;i<&#61;n;i&#43;&#43;)//遍历从temp出发的每一条边&#xff0c;入度--{if(map[temp][i]){indegree[i]--; //关联的边-1if(indegree[i]&#61;&#61;0)q.push(i);}}}
}

推荐阅读
  • 【剑指offer】11.二叉树的深度
    总目录:算法之旅导航目录 1.问题描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视 ... [详细]
  • 生活最近还是在学习flask和java,java马上也快看完了,然后就准备开始复习一下数据结构,同时也预习一下算法。都说程序数据结构算法 ... [详细]
  • Java自学知乎!阿里高级算法专家公开10份资料,涨姿势!
    接口概述:接口是Java语言中的一种引用类型,是方法的集合,所以接口的内部主要就是定义方法,包含常量,抽象方法(JDK ... [详细]
  • 基于2.1.0构造函数初始化accumulator,这是一个发送的缓冲队列管理器this.accumulatornewRecordAccumulator(logContext,co ... [详细]
  • [剑指Offer笔记]3_数组数组,字符串:连续空间链表,树:大量指针操作栈:与递归相关队列:广度优先算法相关数组O(1)时间读写元素;可以用数组实现哈希表;有了哈希表可以实现O( ... [详细]
  • 如何彻底搞懂jdk8线程池
    这篇文章将为大家详细讲解有关如何彻底搞懂jdk8线程池,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有 ... [详细]
  • CSTL中用vector改进内存的再分配作者:winter本文说明了vector容器使用时应该注意的内存分配问题,原理说的比较详细,对于初 ... [详细]
  • 栈的一些基本操作目录栈的一些基本操作栈的概念(新手必看)初始化栈销毁栈清空栈判空栈栈长度取栈顶元素入栈操作出栈操作输出栈进制转换栈的概念(新手必看)栈(stack)又名堆栈,是一种 ... [详细]
  • 在之前的文章中,我们已经讲过了很多种线程同步的方法,如互斥锁,信号量,读写锁等,今天我们再来学习一种线程同步的方法,条件变量。条件变量允许一个线程通知其他的线程它们所等待的某个条件 ... [详细]
  • php数组能实现哪些数据结构数组就是典型的数据结构了,使用数组操作函数,就可以实现单向和多向队列了。操作函数有:array_shiftarray_unshiftarray_push ... [详细]
  • 极限定律 My Algorithm Space AC自动机算法详解
    转载自:http:www.cppblog.commythitarchive2009042180633.html首先简要介绍一下AC自动机:Aho-Corasickautomation ... [详细]
  • 再来一篇深度优先遍历/搜索总结?
    再来一篇深度优先遍历搜索总结?简介:深度优先搜索算法(Depth-First-Search,DFS),最初是一种用于遍历或搜索树和图的算法,在LeetCode中很常见,虽然感觉不难 ... [详细]
  • LC.1738.找出第K大的异或坐标值维护二维区前缀和地推即可。至于找第kkk大,排序搞,或者利用快速选择算法。STLSTLSTL自带了一个nth_ ... [详细]
  • 首先介绍一下几个概念:按位与运算符&:是双目运算符,其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时࿰ ... [详细]
  • 在Scrapy中,请求、响应和项等对象的生命周期是有限的:它们被创建、使用一段时间,最后被销毁。从所有这些对象中,请求可能是生命周期最长的请求,因为它一直在调度程序队列中等待,直到 ... [详细]
author-avatar
手机用户2502908277
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有