我连接了无向图。 我正在寻找构建图的平衡生成树(T)的方法
具体关于平衡生成树,我可以定义如下:
是否有人可以建议任何算法来构建这种“相对”平衡的生成树?
提前谢谢。
答案 0 :(得分:2)
我不确定你的表达“最大等效。”
这个问题可能没有一个完美的解决方案,所以显而易见的是我们能做得多好吗?
这个问题的普遍性似乎是NP-Complete。如果你幸运的话,一些贪婪的方法可能会产生恒定的近似算法。
答案 1 :(得分:0)
这似乎是微不足道的。设G就是你的图。它是连接的,因此每对顶点之间有一条边。使用该定义,构造一个具有与G相同顶点数的任意平衡生成树G'。从G'中的 r 和任意选择的G顶点开始,将G'中的每个顶点映射到a G中的顶点。删除G中没有G'中相应边的所有边。
结果图 - 将其称为“更新的G” - 通过构造具有与G'相同的顶点数,并且通过构造,如果相应的边存在于G'中,则在U中存在边。因此U = G',因此U是平衡的生成树。
答案 2 :(得分:-2)
您希望将树构建为AVL tree。
从page 12 of this PDF document开始,您可以找到用于实现它的其他信息和代码。
This PowerPoint document有一些漂亮的图片可以帮助解释正在发生的事情,还包括AVL树数据类型的Java实现。