==============
版权声明:由于公众号后台规则问题,本文暂时无法设置原创标记,但仍属原创内容,微信公众号“Python小屋”坚持只发原创技术文章。
=============
推荐图书:
董付国著,《Python程序设计基础(第3版)》(微课版),ISBN:9787302611035,清华大学出版社,定价59.8元,2023年1月出版,2023年7月第4次印刷(本书前两版累计印刷27次,已退出历史舞台),全国高等学校计算机教育研究会“十四五”规划教材,山东省高等教育优秀教材,山东省普通高等教育一流教材,山东省一流本科课程“Python应用开发”(线上线下混合)配套教材,山东省一流本科课程“Python程序设计基础”(线上)配套教材,本书第二版为清华大学出版社2019、2020、2021、2022年畅销教材
图书内容:Python基础,正则表达式,文件操作,数据库操作,数据分析与科学计算可视化
配套慕课:中国大学MOOC、智慧树,搜索“董付国”
配套微课:43小时
配套资源:教学大纲、课件、源码、数据文件、在线练习软件
页数:310
适用专业:非计算机专业(偏理科)、选修课
适用层次:研究生/本科/专科
适用学时:48/64
配套资源:用书教师可以免费获取教学大纲、教案、课件、源码、习题答案、慕课、在线练习与考试系统。
==============
问题描述:
拓扑排序(Topological sort)是指把有向无环图(Directed Acyclic Graph,简称DAG)中的顶点排列为一个线性序列,对于任意两个顶点u和v,如果存在从顶点u到顶点v的通路,那么在线性序列中u必然在v之前。
拓扑排序算法步骤为:1)从图中选择一个入度为0的顶点(如果有多个的话就任选一个),输出该顶点,如果没有入度为0的顶点则算法结束;2)从图中删除刚输出的顶点以及该顶点的所有出边,然后跳转到第1步。算法结束后如果输出的顶点数量小于图中顶点数量,则图中必然存在回路。容易得知,拓扑排序的结果有可能不是唯一的。
参考代码:
运行结果:
=================
温馨提示:
关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过190次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1300篇原创技术文章;发送消息“会议”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过700节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习2601道客观题和724道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。