【发布时间】:2019-05-14 18:53:10
【问题描述】:
我正在尝试创建一个数据结构来描述某种类型的重组“组合”树(类似于here)。
首先,考虑一棵树,其中每个节点都有一个特定的 ID,该 ID 由到达该节点所需的序列描述。以固定列表Q = [1,2,3]为例,根据序列图S将Q的可能排列排列成一棵树T:
S =
_0_
/ | \
1 2 3
/| / \ |\
2 3 1 3 1 2
| | | | | |
3 2 3 1 2 1
然后给每个节点一个字母,A, B, C,...树T可以表示为:
T =
_0_
/ | \
A B C
/| / \ |\
D E F G H I
| | | | | |
J K L M N O
在哪里
A = {1}
B = {2}
C = {3}
D = {1,2}
E = {1,3}
F = {2,1}
G = {2,3}
H = {3,1}
I = {3,2}
J = {1,2,3}
K = {1,3,2}
L = {2,1,3}
M = {2,3,1}
N = {3,1,2}
O = {3,2,1}
现在,我的目标是提出一个数据结构,使得重组的树以节点J 和L 是同一个对象(即重组)的方式重组,同样K 和@987654334 @重组,最后是M和O重组。重组的规则是它们的父母D和F,E和H,以及G和I包含相同的元素,并且序列中的下一个元素相同。更详细地说,导致J 和L 之间等价的规则是它们的“父母”D 和F 被设置为等价的(= {1,2})。我不确定这会如何查找更大的列表Q...
像这样的树有特定的名字吗?有没有我应该研究的现有资源,或者我应该从哪里开始?谢谢!
【问题讨论】:
标签: data-structures tree