【发布时间】:2011-12-22 22:40:52
【问题描述】:
给定一个undirected graph,其中每个节点在空间中都有一个笛卡尔坐标,具有树的一般形状,是否有算法将图形转换为树,并找到合适的根节点?
请注意,我们对“树”的定义要求分支不能以锐角偏离父节点。
请参阅下面的示例图。我们如何找到红色节点?
【问题讨论】:
-
在这个例子中的无向图中,任何节点都可以作为根,你会得到一棵合适的树。如果我做对了,哪个节点将成为根取决于节点的空间排列。但我不清楚如何,以及“分支不会以锐角偏离父节点”的意思。你能澄清一下吗?你能解释一下吗?为什么最上面或最右边的节点不能成为您的应用程序的根?
-
@paniwani:您的意思是说,将兄弟姐妹链接到其(公共)父节点的分支之间的角度一定不是锐角吗?除了坐标和图形结构之外,您还有什么数据结构可以处理吗?除了根节点的度数,你的树是二元的吗?二叉树会更容易处理,因为相邻边之间的 3 个角度中恰好有 1 个是锐角,因此可以在本地确定父/子关系。
-
@paniwani:请注意,您的问题似乎定义不明确:考虑任何 steiner 树;分支之间根本没有没有锐角。因此任何节点都可以被选为根节点而不会违反您的约束
-
不能每个节点都是树的根,这取决于您如何看待图表?
标签: graph tree graph-theory nodes