拓扑排序(感觉应该可以用队列来实现),急。。。

sbxurui 2011-12-12 04:57:48
这几天重看数据结构的书,看到图算法时,基本上关于拓扑排序的方法都是用堆栈或者是DFS实现,自己想了一下。,感觉用队列也可以实现同样的效果。

算法如下:
1.从有向图中选择一个入度为零的顶点并输出。
2.从图中删除该顶点,并且删除所有从该顶点出发的弧,并将弧头对应的顶点入度减去1.
3.重复上述两步,指导顶点全部输出,完成排序。
4.若还有顶点没有输出,说明有环,排序失败。


实现时,一般是建立一个入度为零的栈,但是个人觉得建立一个入度为零的队列应该也一样,不知道大家怎么看,求指教。。。
...全文
491 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gykgod 2011-12-12
  • 打赏
  • 举报
回复
实现算法就可以了 用什么数据结构都行

你的问题就是 有向图是否有环的判断 便于删除即可

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧