首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/560490/blog/4571201

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

【图论】拓扑排序详解

前言 在正文开始前,我们先来了解一下有向无环图(Directed Acyclic Graph简称DAG) 如下图就是一个DAG图,DAG图是我们讨论拓扑排序的基础。 AOV网:数据在顶点 可以理解为面向对象 AOE网:数据在边上,可以理解为面向过程! 1. 什么是拓扑排序 拓扑排序(Topological Order),很多人听说过,但是不了解的一种算法。或许很多人只知道它是图论的一种排序,至于干什么的不清楚。又或许很多人可能还会认为它是一种啥排序。 而实质上它只是将DAG图的顶点排成一个线性序列,得到一个顶点的全序集合。其排序的顺序依据就是节点的指向关系。比如前言的DAG图: ... 节点5在节点4和节点3的后面 节点9在节点6和节点7的后面 ... 那么最后得到的节点的线性序列结果,也一定要满足上面的指向顺序。 每一个节点都拥有入度(有多少点导向它,也就是开始它有多少前提)和出度(它导向多少点,也就是它是多少其他节点开始的前提)。例如节点5的入度为3和4,出度为7。 拓扑排序的结果不是唯一的,只要符合上面的条件,那么它就是拓扑序列,比如1 2 4 3 6 5 7 9和2 1 3 4...

程序员你是如何降低NPE的?

程序员,如果系统突然报了一个空指针异常,你肯定像吞了一只苍蝇一样尴尬。 那么如何在日常开发过程中降低NPE? 问题 回答 现状 返回空值会出现大量的空指针异常 目的 改进方法的返回值,降低出现空指针异常 实现路径 方法返回空集合或者空数组 跟我来! 背景 下面的方法看起来很常见。 private final List<Chesse> chessesInStock= ... public List<Cheese> getCheeses(){ return cheesesInStock.isEmpty()?null:new ArrayList<>(cheesesInStock); } 假如你去购买芝士的时候没有可用的芝士,似乎没有理由特别指出这种场景。 但是你这么做的话,客户端需要添加额外代码来处理可能返回空值的情况。示例代码如下: List<Cheese> cheeses = shop.getCheeses(); if(cheses != null && cheeses.contains(Cheese.STILTON)){ ...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册