Database 在多棵树中查找相似的分支

Database 在多棵树中查找相似的分支,database,algorithm,data-structures,tree,graph-theory,Database,Algorithm,Data Structures,Tree,Graph Theory,假设我们有N棵树,它们有不同的大小和结构。在所有这些树中找到类似树枝的最好方法是什么?最终目标是找到所有相似的子树,并将它们从最长的相似分支(树级别)排序到最短的分支 问题的目的是在多个查询中找到相似的连接。如果我们将每个查询表示为一棵树,那么连接将在每个级别生成分支。我试图在所有查询中找到相似的连接 首先从表名到列表(树,树中的位置)构建一个映射。在构建中,您可以找到同一个表被引用两次的位置。记下树节点的两个子节点都是叶子的位置 访问节点的两个子节点都是叶子的位置。从树中删除这些子级及其父级

假设我们有N棵树,它们有不同的大小和结构。在所有这些树中找到类似树枝的最好方法是什么?最终目标是找到所有相似的子树,并将它们从最长的相似分支(树级别)排序到最短的分支


问题的目的是在多个查询中找到相似的连接。如果我们将每个查询表示为一棵树,那么连接将在每个级别生成分支。我试图在所有查询中找到相似的连接

首先从表名到列表(树,树中的位置)构建一个映射。在构建中,您可以找到同一个表被引用两次的位置。记下树节点的两个子节点都是叶子的位置

访问节点的两个子节点都是叶子的位置。从树中删除这些子级及其父级,并使用新表名替换它们,使用相同的表名,而刚才删除的两个表是相同的。在更新地图时,您将发现最大深度为1的子树在树中被引用了两次。记下此编辑已生成树节点的两个子节点都是叶子的新位置的位置

重复上一段以检测在原始树中具有最大深度为2的相同子树的位置


继续,直到将所有树编辑为不存在。您现在已找到所有子树匹配项,按最大深度的相反顺序。

定义“相似”。您是指精确的结构吗?你的意思是子树节点的内容相同(或相似,无论这意味着什么),而不管结构如何?如果没有“相似”的定义,绝对没有办法回答你的问题。我指的是相似的精确结构。好的,精确结构。内容重要吗?“相似子树”意味着相同的树结构以及相同的数据。您可能应该编辑您的问题并添加该信息。这相当关键。