Compression 从“指纹”重建树木

Compression 从“指纹”重建树木,compression,tree,fingerprinting,Compression,Tree,Fingerprinting,我已经做了SO和Google的研究,还没有发现有人解决过这个问题,或者至少没有人写过这个问题 我的问题是,给定一棵任意高度的通用树,每个节点可以有任意数量的分支,是否有一种方法可以从通用树的根开始唯一有效地对任意子树进行指纹识别,从而给定通用树和树的指纹,我可以重建原始树 例如,我有一棵普适树原谅我拙劣的插图,代表了我的可能性世界: Root / / / | \ \ ... \ O O O O O O O (Level 1)

我已经做了SO和Google的研究,还没有发现有人解决过这个问题,或者至少没有人写过这个问题

我的问题是,给定一棵任意高度的通用树,每个节点可以有任意数量的分支,是否有一种方法可以从通用树的根开始唯一有效地对任意子树进行指纹识别,从而给定通用树和树的指纹,我可以重建原始树

例如,我有一棵普适树原谅我拙劣的插图,代表了我的可能性世界:

Root / / / | \ \ ... \ O O O O O O O (Level 1) /|\/|\...................\ (Level 2) 等等

我也有一棵树,我的宇宙中有根的子树

Root / /|\ \ O O O O O / 等等

有没有一种方法可以在这棵树上画指纹,这样在给定指纹和通用树的情况下,我就可以重建一棵树

我在想一些类似于散列、压缩或者功能性/声明性构造的东西?时间或空间上的大O分析优先


例如,一个嵌套表达式,如:{Root}、{1,2,3}、{2,3,1,4,5}……},表示树中每个级别上的实际节点,可能是有效的,但它能更有效地执行吗?

我会使用一个列表列表,其中列表中的每个元素都说明您有多少子级:

[2][1,2][0,0,0]]

是一棵树,第一层有两个节点,左侧子节点有一个子节点,右侧子节点有两个子节点

通过您选择的无损压缩算法运行该输出


您还可以使用树的深度优先遍历,或者任何其他类型的遍历。无论什么是最容易重建的。

您肯定会使用从通用根到子树根的路径作为指纹?这几乎就是我要寻找的;至少,我会尽我所能的接近现在…我会标记答案,并在我进一步探索时发布任何更新。谢谢