我正在寻找方法来维护图的相对平衡的生成树,因为我向图添加了新的节点/边。
我有一个无向图,该图以单个节点“根”开始。
在每个步骤中,我都会在图上添加一个新节点和将其连接到图的边,或者仅添加一个新的边来连接两个旧节点。随着图形的增长,我会维护一棵生成树。大多数情况下,这意味着当我添加新节点和边时,会将新节点设置为它所连接的旧节点的子节点。
我无法控制新节点的添加顺序,因此上述树构建算法显然会导致生成树不平衡。
有谁知道在线启发式技术可以使生成树“相对平衡”,同时最大程度地减少重新树的工作量?我对树结构有完全控制。我无法控制的是图形连接性,或者添加新节点的顺序。
请注意,标准的Google对诸如“平衡”,“生成”和“树”之类的术语的响应似乎是二叉树和B树,两者均不适用。我的图节点可以具有任意数量的邻居,因此树节点可以具有任意数量的子代,而不是像二叉树那样的2个子代。B树通过更改其邻接表来保持平衡,而我无法更改图的连接性。