我需要迭代一棵树/图并按照一些规则生成特定的输出:
预期输出应为(顺序无关):
规则如下:
编辑:此结构非常接近于我的树:
或许更易读:
_ d
/ / \
b c _e
/ / |
a f g
预期输出应为(顺序无关):
{'bde', 'bcde', 'abde', 'abcde', 'bdfe', 'bdfge', 'abdfe', ...}
规则如下:
- 树的顶部 'bde' (最左侧的根节点子节点+根节点+最右侧的根节点子节点) 应始终存在。
- 左-右顺序应保持不变,例如组合 'cb' 或 'gf' 不被允许。
- 所有路径都按从左到右的方向进行。
编辑:此结构非常接近于我的树:
class N():
"""Node"""
def __init__(self, name, lefts, rights):
self.name = name
self.lefts = lefts
self.rights = rights
tree = N('d', [N('b', [N('a', [], [])], []), N('c', [], [])],
[N('e', [N('f', [], []), N('g', [], [])],
[])])
或许更易读:
N('d', lefts =[N('b', lefts=[N('a', [], [])], rights=[]), N('c', [], [])],
rights=[N('e', lefts=[N('f', [], []), N('g', [], [])], rights=[])])