【发布时间】:2012-08-24 10:15:55
【问题描述】:
假设我们有一个三角形,每个节点都有 K 个孩子。
K = 2 的一个例子是:
1
2 3
4 5 6
K = 3 的一个例子是:
1
2 3 4
5 6 7 8 9
K = 4 的一个例子是:
1
2 3 4 5
5 6 7 8 9 1 2
等等
我想将这些三角形存储在一个数组中。给定元素总数 T 和每个节点 K 的子节点数,我希望检索三角形的总高度(假设它们是完整的三角形)
我也在寻找数组中每个元素对每个孩子的偏移量。我知道对于上面 K = 2 的示例,数组是 [1, 2, 3, 4, 5, 6] ,其中每个级别 L 的偏移量是 L * (L + 1) / 2 (因为级别 1 有 1元素,2级有2个,3级有3个……)
编辑:这个例子是正确的。每个节点都可以访问 K 个子节点。对于 K = 3 1 可以访问 2 3 和 4。2 可以访问 5 6 和 7。3 可以访问 6 7 和 8。
这些是三角形,而不是图形或树。
【问题讨论】:
-
您的示例不显示图表(您称为三角形),其中每个级别的 K 个节点对应于上一级的每个节点。请更准确地陈述您的问题。
-
您能否再举一些例子(K = 4、5,甚至 1?)以使您的规则更清晰一点?
-
你的例子正确吗?第二个例子的最后一行不应该有
5 6 7 8 9 10 11 12 13的值吗?我猜你的数字是节点,你说每个节点都有K孩子。 -
我想他说的是每个节点,如果你觉得更像树的话,在第一个节点中,1 是第一个节点,它有 2 个孩子(2 和 3)2 有 2 个孩子,(4 和 5 ) 和 3 有 2 个孩子 (5 & 6).. 所以,如果孩子是 3,1 有,2 3 4,2 有 5 6 7,3 有 6 7 8,4 有 7 8 9 ....跨度>
-
当您达到 K = 4 时,兄弟姐妹之间是否共享“他们的”4 个孩子中的 2 个或 3 个?
标签: c# arrays algorithm data-structures