c - 图的树分解

标签 c algorithm graph

我需要一个起点来在 c 中实现一个算法,以生成输入图的 tre-decomposition。我正在寻找的是一种算法来做这件事。我想要算法的伪代码,我不关心编程语言,也不关心复杂性

网上有很多理论,但没有实践。我试图了解如何做一个可以在 c 中实现的算法。但这太难了

我尝试使用以下信息:

以及许多其他信息 Material 。但是这个链接没有任何用处。

谁能帮帮我?

最佳答案

因此,这是在树中查找节点的算法。

  1. 选择任意节点v

  2. 从 v 开始 DFS,并设置子树大小

  3. 重新定位到节点 v(或从属于树的任意 v 开始)

  4. 检查v质心的数学条件

  5. 如果条件通过,返回当前节点作为质心

  6. 否则移动到具有“最大”子树大小的相邻节点,并返回到步骤 4

以及树分解的算法

  1. 将质心作为新树的根(我们称之为“质心树”)

  2. 递归分解生成的森林中的树

  3. 将这些树的质心作为最后一次 split 它们的质心的子级。

这是一个示例代码。

https://www.geeksforgeeks.org/centroid-decomposition-of-tree/amp/

关于c - 图的树分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53898090/

相关文章:

C套接字写太多次

c++ - 求所有可能的点对之间力的总和?

algorithm - 有两个条件的最短路径问题

database - 通过有向无环图存储唯一路径是否可行?

gwt - 带有折线图/饼图的 Google Web 工具包

c - 使用未分配的空间 calloc

c - 为 Adium 包装一个 libpurple 插件

c - 如何修复不完整的结构类型

java - 检查重叠基因组区域的算法

algorithm - 我正在尝试实现一个 merkle 树一致性证明,但我坚持理解算法