我有一棵树,我需要为每个节点分配一个值,这样对于每个节点,从该节点到根的路径就没有重复的值。我正在尝试为集合树生成所有值分配并存储它们。我一直无法解决或找到合适的算法来顺序生成这些树。任何方向或想法将不胜感激。
答案 0 :(得分:0)
您可以使用以下算法:
也许这个伪代码会更好地解释它:
function assign(root, options) {
for each options as option:
assign root with option
newOptions = options - option // remove newly assign value
for each root->childs as child:
call assign(child, newOptions) //recursive call after removing current option
}
options = [1...m]
assign(root, options)
这比蛮力法要复杂得多
希望有帮助!