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

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

Tree Walker: Create [D6, Win2k]


Страницы:   1 2

Satirus ©   (2002-04-19 17:14:00) 

Вопрос к умудрённым опытом в использовании компонента TTreeView.
Предложите оригинальный код для перебора веток дерева снаружи внутрь. То есть, как пройтись сначала по сиблингам корня, потом по их детям, потом по сиблингам детей и т. д., до последнего колена в глубину


MBo   (2002-04-19 17:48:00) [21]

если не хранить номера узлов, имеющих деток, то придется обходить все, проверяя level, т.е. сначала с level 0, потом с 1 ,и т.д., пока не будет таких 0.
А можно создавать при первом обходе список, сортированный по level и дальше по нему.


vuk   (2002-04-19 17:46:00) [22]

Рекурсивно. То есть пишется процедура, которой на вход подается узел и она сначала проходит по всем его дочерним узлам а потом делает второй проход по ним же и вызывает сама себя, передавая каждый из дочерних узлов в качестве параметра.


vuk   (2002-04-19 17:45:00) [23]

Рекурсивно. То есть пишется процедура, поторой на вход подается узел и она сначала проходит по всем его дочерним узлам а потом делает второй проход по ним же и вызывает сама себя, передавая каждый из дочерних узлов в качестве параметра.


Дмитрий Баранов   (2002-04-19 17:44:00) [24]

В цикле по всем узлам (0..TreeView1.Items.Count-1) строим массив массивов (динамических) указателей (TTreeNode).
Первый индекс - Items[i].Level, второй - порядковый номер узла в массиве.
Вариации на тему - не массивы, а стеки (динамический массив - тормоз).

Выстроили - работаем.


Страницы:   1 2

Наверх

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