Алгоритм выбора узлов и их родителей в дереве

Допустим, у вас есть следующая древовидная структура:

     a         [Level 0]
   / | \
  b  c  d      [Level 1]
 / \    |
e  f    g      [Level 2]
   |   / \
   h   i  j    [Level 3]

Я представил это в базе данных следующим образом:

node  parent
------------
a     null
b     a
c     a
d     a
[...]
h     f
i     g     

Я хотел бы написать функцию что для заданного уровня он вернет все узлы на этом уровне и их родителей.

Например:

f(0) => { a }
f(1) => { a, b, c, d }
f(2) => { a, b, c, d, e, f, g }

Есть мысли?

5
задан Daniel A. White 16 March 2011 в 00:47
поделиться