Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Количество дочерних элементов элементов в дереве [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]

алгоритм есть - называется от рекурсивный метод.


Наверх

Титульная страница Поиск, карта сайта Написать письмо