![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество дочерних элементов элементов в дереве [D5, WinXP]
Dionnis © (2004-10-16 16:42:00)Добрый день всем! В дереве нужно посчитать для каждого узла количество всех его дочерних элементов.
Tree. Items[i].Count не даёт желаемого результата, так как Count - это количество дочерних элементов i-го узла, а если эти элементы имеют в свою очередь дочерние элементы, то они не принимаются в расчёт. Может есть какой известный алгоритм для подсчёта этих элементов, тогда киньте ссылочку, или текст.
Заранее всем благодарен!
Dionnis (2004-10-16 17:22:00) [1]Спасибо большое!!! 8-)
begin...end (2004-10-16 17:13:00) [2]Вроде так, насколько я понимаю:
функция ЧислоДочернихЭлементов(НомерУзла: Integer): Integer;
переменные
Количество, Индекс: Integer;
начало
Результат := 0;
Количество := Items[НомерУзла].Count;
если Количество = 0 тогда
Результат := Количество
иначе
для Индекс := 0 до Количество - 1 делаем
Увеличить(Результат, ЧислоДочернихЭлементов(Индекс))
конец.
Dionnis (2004-10-16 16:59:00) [3]Спасибо конечно за подсказку, но то что он рекурсивный это понятно 8-), а поконкретнее нельзя?
aleshap (2004-10-16 16:48:00) [4]алгоритм есть - называется от рекурсивный метод.