【问题标题】:C# Graph Traversal recursionC#图遍历递归
【发布时间】:2016-06-02 18:50:59
【问题描述】:

我需要使用什么递归算法来遍历这个图并得到这个序列(输出):

IF01
IF04
IF02
IF03
IF08 
IF05 
IF06 
IF07 
IF09 

初始数据(输入)(第一个是代码,第二个是你有多少个代码,第三个是你必须带什么代码才能使用它,例如打印IF02,你必须已经打印了IF01,要打印 IF05,必须先打印 IF04。以此类推)

IF01 0
IF02 1 IF01
IF03 2 IF01 IF02
IF04 0
IF05 1 IF04
IF06 1 IF05
IF07 2 IF03 IF06
IF08 1 IF03
IF09 2 IF07 IF08

【问题讨论】:

  • 数组是什么意思?节点之间的关系和边的含义是什么?你必须给我们更多的输入/输出来帮助你
  • 我将所有这些数据存储在数组中。编辑:添加输入

标签: c# search recursion graph traversal


【解决方案1】:

这个问题我能想到的最简单的解决方案就是运行拓扑排序,算法可以看这里:https://en.wikipedia.org/wiki/Topological_sorting

用c#实现应该没问题

这是一篇包含实现的精彩文章:

http://www.codeproject.com/Articles/869059/Topological-sorting-in-Csharp

【讨论】:

  • 你是对的,这就是算法!但我不知道如何使用数组而不是列表或字典来实现它。
  • @Seinioritza 我添加了一篇很棒的文章,已经实现了
  • 是的,我看到了。但问题是我需要使用数组
  • 使用数组而不是列表是否有特殊原因?另请记住,您始终可以将数组转换为列表,反之亦然
  • 是的,我只需要使用数组就可以了,而且我以前从未使用过列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2018-11-11
  • 2018-07-12
  • 2014-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多