我有这个问题:给定一些数组(例如在 Perl 或任何其他语言中):
1. (A,B,C)
2. (B,D,E,F)
3. (C,H,G)
4. (G,H)
在每个数组中,第一个元素是父元素,其余元素是它的子元素。在这种情况下,元素 A 有两个孩子 B 和 C,B 有三个孩子 D、E 和 F 等。我想处理这组数组,并生成一个包含正确顺序的列表。在这种情况下,A是根元素,所以有B和C,那么B下面是D,E和F,C下面是G和H,G也有H作为子元素(这意味着一个元素可以有多个父元素)。这应该是结果数组。
重要提示:查看第 3 个数组,H 在 G 之前,即使它是第四个数组中 G 的子元素。所以每个数组中的孩子没有特定的顺序,但在最终结果中(如下所示),在它的孩子/人之前必须有任何父母。
(A,B,C,D,E,F,G,H) 或 (A,C,B,D,E,F,G,H) 或 (A,B,C,G,H,D,E ,F)
有一些创建该数组的递归方式会很好,但不是必需的。谢谢你的时间..