博客
关于我
算法C++ 面试常考拓扑排序理解 面试复习用(第四章)
阅读量:190 次
发布时间:2019-02-28

本文共 1193 字,大约阅读时间需要 3 分钟。

文章目录


造轮子博客链接


参考博文



闲聊

我对于一些我实在看不下去的东西 有的时候也忘记了 感觉不是很重要的话 我就会去网上搜索 这个东西面试会不会考察 发现要考察的时候 还是觉得要写一篇博客 来记录一下 因为毕竟我对于我不是很想看的东西的话 我的理解相对来说就没有那么好 写一篇总比没写好


拓扑排序的理解

图分为无向图和有向图 无向图与有向图的区别就是 无向图中的线段 仅代表连接上了两个点 但是有向图的线段却有方向

拓扑排序是有向图中的一种类型 是属于无环类型的有向图 如果是有环的话 我记得以前的一个例子 就是讲大学学科的优先级比例 就是拿的拓扑排序来的

如果是有环图的话 那么何从谈起 这一个点之前的项目都必须是要完成的 环都循环了 那哪里来的优先级呢


思路分析 代码如何输出拓扑序


理论功夫我确实感觉到部分吃力 毕竟我觉得 编程编程 吃的是码量嘛哈哈哈哈 但还是要多花点时间记一下这些理论东西

首先就是在处理有向图的时候我们是用什么图来处理

是用邻接表来处理呢 还是用邻接矩阵处理
其实我感觉都差不多 算法书上好像直接把邻接矩阵给pass掉了
但是我们不能否认的是 邻接矩阵在面对很稠密的数据输入的时候 确实也浪费不了多少空间 而且访问也是常数时间的

那就用邻接表嘛 在处理数据的时候我们需要留一个心眼

就是对于 出度和入度 我觉得我们是需要有所记录的
因为毕竟我们的拓扑序的输出顺序就是按照入度数来进行排序的

其实核心问题就是记录 入度数 在每当排出一个点时 我们需要把那个点指向的所有点的入度数减去一 我们的优先级就是把每一个入度数为0的弄出来 然后又会多出来几个入度数为0的 知道全部给pop出来了


拓扑排序有关的题目 实践出真知

相关力扣题目


相关知识点 拓扑排序的就是入度

把这道题写了 感觉很多东西也都开了 刚刚才被通知 下下周考高数
但现在一点没学 只能现在先预习起走了 下一周的编程可能要先放下了 把考试给应付一下

这里我还是想再写一下 不重复检测环的方式 因为发现自己这个地方理解有点薄弱

我们可以利用unorder_map<int,int> 来记录 或者是用一个栈

如果是用unorder_map<int,int>来记录访问的话 则是
一个节点为0 表示未访问过 节点为1 表示当前路线正在访问 节点为2表示已经访问过了 可以跳过 而用栈的话 其实也就记录了一个 正在访问的路线上的节点 如果有环则当前栈中必定有那个元素 并且我们可以拿一个vector<bool>来记录是否访问过 免得重复检测那些已经检测过的路线

针对拓扑排序的题 我们恰好在求拓扑序的时候 得到的结果是小于节点数的话 就说明有环 因为总存在一个时间点 所有的节点都有入度 而无法BFS

ok了 上面是对有环和 拓扑序的总结 如果之后忘记了可以反复回看一下思路 免得忘记


检测回环相关题目


转载地址:http://ccni.baihongyu.com/

你可能感兴趣的文章
NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
查看>>
NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
查看>>
NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
查看>>
NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>