我已经完成了我的 SO 和 Google 研究,但还没有找到任何人以前解决过这个问题,或者至少没有找到任何写过它的人。
我的问题是,给定任意高度的“通用”树,每个节点都可以有任意数量的分支,有没有办法从“通用”树开始唯一(有效地)“指纹”任意子树根,这样给定通用树和树的指纹,我可以重建原始树吗?
例如,我有一个“通用”树(请原谅我糟糕的插图),代表我的可能性世界:
根 // / | \ \ ... \ 呜呜呜(1级) /|\/|\.......\(第 2 级)
等等
我也有树 A,我的宇宙的根子树
根 / /|\ \ 哦哦哦 /
等等。
有没有办法给树“指纹”,这样给定指纹和通用树,我可以重建 A?
我在想一些类似于散列、压缩或函数/声明性构造的东西?Big-O 分析(在时间或空间上)是一个加分项。
例如,像这样的嵌套表达式:{{(Root)},{(1),(2),(3)},{(2,3),(1),(4,5)}...}
表示存在于树中每一层的实际节点可能是有效的,但它可以更有效地完成吗?