【发布时间】:2011-03-31 11:14:04
【问题描述】:
我有一个需要指导的问题。我有一个数组,其中包含有关不同节点之间边缘的信息。所以,
a[1][39] = 'p' --> 在节点 1 中使用转换 'p' 到达节点 39。完整的图表是这样的:
i[1][51] = 'p'
i[1][39] = 't'
i[39][40] = 'd'
i[40][66] = 'p'
i[66][51] = 'd'
i[40][41] = 'm'
i[41][64] = 'd'
i[64][40] = 'd'
如您所见,它是一个有向循环图。 我需要做的是拥有从点 X 到 Y 的所有路径。因此,给定 X=1 和 Y=51。我需要这样的输出:
o[0][0] = 'p'
o[1][0] = 't'
o[1][1] = 'd'
o[1][2] = 'p'
o[1][3] = 'd'
o[2][0] = 't'
o[2][1] = 'd'
o[2][2] = 'm'
o[2][3] = 'd'
o[2][4] = 'd'
o[2][5] = 'p'
o[2][6] = 'd'
第一个索引显示路径号。所以,我在这里有三个路径。第二个索引显示步骤。所以,第一条路走一步,第二路走四步。
我在 PHP 中这样做,但即使是伪代码也可以。此外,如果这可能有帮助,我还可以将输入数组反转为i[1]['p'] = 51 等。
谢谢。
【问题讨论】:
-
不用说,这是实际更大的图表的一个子集。另外,我现在可以忍受循环,但必须将循环限制在一个特定的数字 - 例如,如果路径访问一个节点超过两次,则丢弃它。