使用C#进行图形导航

时间:2009-05-01 19:06:00

标签: c# algorithm graph-theory traversal directed-graph

我试图想出一个好的算法来导航下面的图表,我有点夸张。

alt text http://www.archimedesinc.biz/images/StackOverflow/Tree.jpg

如果用户选择“表21”作为起点,我需要能够从该起始表中获取任何其他表的路径。

EX:如果用户选择“表21”作为开头,然后从“表8”中添加一个值,我需要创建以下路径“表21 - > 表12 - > 表9 - > 表6 - > 表8 “,所有权重之间表是一样的。

我似乎忘记了处理有向图的技巧,并且想不出一个好的算法。我不是要求解决方案,而只是推动正确的方向。

谢谢!

3 个答案:

答案 0 :(得分:3)

广度优先搜索会找到最短路径:http://en.wikipedia.org/wiki/Breadth-first_search

答案 1 :(得分:3)

既然你说边缘都是相同的权重,Dijkstra's algorithm(这是我通常的第一选择)只会降级到breadth first search所以我建议使用它来简化。

答案 2 :(得分:1)

您可以从众多算法中进行选择,以确定最短路径。 QuickGraph擅长此类事情。