当我将图形转换为树时,我不介意在树中有重复的节点。让我解释相反的方式。假设我有2棵具有共同元素的树。我可以在公共元素上加入它们来创建图形。
我是否可以在相反的方向上执行此操作,即从图形开始并将元素拆分为重复项以创建多个树?
答案 0 :(得分:0)
如果我理解正确,您需要一个包含原始链接的树,允许原始节点在此树中多次出现。它是某种spanning tree,除了约束是保留所有链接(而不是保留所有节点,如在经典生成树中)。
因此,您可以使用与发现经典生成树类似的方法。基本方法基于广度或深度优先搜索。您从随机节点开始,然后将其添加到树中。然后使用搜索算法探索其邻居,并且每次到达节点时,都将其添加到树中(使用相应的链接)。您必须维护所有已处理链接的列表,这样您才不会两次处理相同的链接。此外,您需要一种方法来唯一地标识每个节点,以允许在树上进行后续处理。例如,只需对原始图中的节点编号即可。