Algorithm 基于节点属性的树生成算法

Algorithm 基于节点属性的树生成算法,algorithm,Algorithm,我试图解决一个编程问题,其中我需要实现以下算法(大致): 有两个节点,即A、B、C等 每个节点中可以有多个项目,即a、b、c、x、y、z等。例如 A [a, b, c, x, y, z] B [a, b, c] C [x, y, z] 可以有无限多的节点和项目,节点中可以有任意数量的项目(但同一项目不会再次重复) 我要做的是根据节点中的公共项在节点之间创建继承权。因此,在上面的例子中,A应该比B和C拥有更高的继承权。或者换句话说,A是主人,B和C是奴隶 所以,我在想,如果我可以根据公共项从

我试图解决一个编程问题,其中我需要实现以下算法(大致):

有两个节点,即A、B、C等

每个节点中可以有多个项目,即a、b、c、x、y、z等。例如

A [a, b, c, x, y, z]

B [a, b, c]

C [x, y, z]
可以有无限多的节点和项目,节点中可以有任意数量的项目(但同一项目不会再次重复)

我要做的是根据节点中的公共项在节点之间创建继承权。因此,在上面的例子中,A应该比B和C拥有更高的继承权。或者换句话说,A是主人,B和C是奴隶

所以,我在想,如果我可以根据公共项从节点创建一个树,那么对我来说会更容易。但我不知道该用哪种算法。有人知道哪一个适合我的情况吗?构建树不是强制性的,如果有其他方法来实现同样的事情,也可以。谢谢。

尝试使用

请注意,AVL树的最坏情况可能如下所示。你可以阅读更多关于最坏情况的信息

最重要的是,给定两个“节点”,比较它们并确定哪个更高的逻辑是否存在?如果不是这样,那就需要先建造


一旦你知道了如何进行比较,那么AVL树就可以用来构建和维护“层次结构”。

我已经采用了由陈明贤、朴钟洙和Philip S.Yu撰写的论文《网络环境中路径遍历模式的数据挖掘》中提出的算法。本文件可供查阅。虽然这里的算法不能直接解决我的问题,但我在算法中做了一些调整,使其适合我的问题情况。现在它工作得很好,我得到了我需要的结果


感谢大家花时间阅读我的问题和建议的解决方案。

主节点(或父节点)是否需要包含其“从属节点”(或子节点)的所有项?或者和孩子们一样常见?不,主人不必包含奴隶的所有物品。一个节点在其他节点(B,C)上称为master(这里是A),因为它有其中最常见的项。如果有第四和第五项,如D[a,b,c,x,p,q,r],E[p,q,r],那么D将是这里的主项。(继续我之前的评论)如果你认为是树,那么级别将是2级:根(D)有两个分支(a,E),a有两个分支(b,c)。希望这是可以理解的。听起来像是一个笑话。你能根据两个节点的内容精确地定义它们的顺序吗?与a相比,[a,b,c,d,e,f]如何排序?所以,如果你有(比如)255个节点,你从根到叶总是有8个级别吗?谢谢你的回答。但我已经找到了解决办法。请检查我对该解决方案的回答。