0

我有代表层次结构的数据

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

代表这样的层次结构

1
|_2
|
5
|_4
  |_3

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

|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   |
4

1 回答 1

1

考虑到您node参考parent_nodethen 函数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);
}
于 2013-07-04T18:13:48.820 回答