1

如何使用 php 和 mysql 计算树中的节点数。

## id ## parent ## child ## 
    0     0          A
    1     0          B
    2     0          C
    3     2          D
    4     1          E
    5     1          F
    6     2          G
    7     3          H
    8     5          I
    9     5          J
   10     5          L
   11     5          M
   12     1          N
   13     0          O
   14     0          P
      A
    /   \
   B     C    
  / \   /  \
 E  F  D    G

我们如何计算子节点

条件 A - 仅第一代 2 (B, C) 如果完成这 2 个计数 A 去创建新树

就像

   A
  / \
 O   P

我如何给出条件。

4

1 回答 1

0

欢迎来到递归的世界。这在 MySQL 中并不容易,所以我认为你最好在 PHP 的帮助下做到这一点。例如,创建一个这样的函数:

function countNodes($rootNode)
{
   $result = 1; // The rootnode itself.

   // Query children of $rootnode. 
   // I leave this to you.

   foreach($subNode in $children)
     $result += countNodes($subNodes);

  return $result;
}

您会看到此函数不断为它在每个节点下找到的每个子节点调用自身,有效地遍历所有树。

于 2012-10-12T08:00:56.600 回答