假设我有这些表格:
A| k B| k | a C| k | a D| k | c E| k | d ...
----- --------- --------- --------- ---------
| 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2
| 2 | 2 | 1 | 2 | 1 | 2 | 2
| 3 | 3 | 1 | 3 | 3
| 4 | 1
他们可以代表三种树结构:
_____A1_______ A2 A3 ...
/ / | | \ \ |
B1 B2 B3 C1 C2 C4 C3
/ \
D1 D2
|
E1
映射的规则是:
目标是为每个叶节点选择一行。
行中的内容应与通过从根节点遍历树到叶节点所找到的内容相同。
这个例子可能是:
Ak | Bk | Ba | Ck | Ca | Dk | Dc | Ek | Ed
-------------------------------------------
1 | 1 | 1 | | | | | |
1 | 2 | 1 | | | | | |
1 | 3 | 1 | | | | | |
1 | | | 1 | 1 | | | |
1 | | | 2 | 1 | 1 | 2 | |
1 | | | 2 | 1 | 2 | 2 | 1 | 2
1 | | | 4 | 1 | | | |
2 | | | | | | | |
3 | | | 3 | 3 | | | |
我已经制定了可行的解决方案/算法。通过递归生成选择,它将很容易扩展到更大的表和深度。但是,我不确定选择将如何在性能上进行扩展。此外,选择并不漂亮,人类不易阅读。
你会如何解决这个问题?