algorithm - 深入了解逻辑层次结构

标签 algorithm record hierarchy hierarchical-data

我有代表层次结构的数据

|id|parent_id|data|
|1 |0        |cat1|
|2 |1        |cat2|
|3 |4        |cat3|
|4 |5        |cat4|   
|5 |0        |cat5|

表示这样的层次结构

1
|_2
|
5
|_4
  |_3

我需要实现一些允许我执行的函数或算法 创建层次结构并根据逻辑结构获取每个节点的深度。我的意思是获取此信息。

|id|parent_id|data|deep|
|1 |0        |cat1|0   |
|2 |1        |cat2|1   |
|3 |4        |cat3|2   |
|4 |5        |cat4|1   |
|5 |0        |cat5|0   |

最佳答案

考虑到您的 node 引用了 parent_node,那么函数 deep 可以按如下方式实现:

(每个节点都有id和data属性)

int deep(node *n) {
    /* deep of root node is zero and that's our base case */
    if(n->parent_node.id == 0)
        return 0;
    return 1 + deep(n->parent_node);
}

关于algorithm - 深入了解逻辑层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475820/

相关文章:

算法 - 从重叠区间分组

python - 将普通代码转换为 3AC - 三地址代码

arrays - 在 O(nlogn) 和 O(logn) 附加空间中找到最小的正数

sql-server - 如何使用CTE映射父子关系?

Python - 使用 iGraph 绘制节点层次结构

algorithm - 具有 O(log n) 摊销时间的数据结构设计?

python - 如何从 python 文件中读取由自定义分隔符终止的记录?

c - 如何在数组中存储一条记录?

stream - Ada - 如何显式打包位字段记录类型?

ios - 加载委托(delegate)时警告窗口层次结构