|
Обход дерева |
☑ |
0
mzelensky
12.04.12
✎
15:10
|
Доброго всем!
Вот такая задача. Есть дерево значений. К примеру 3 уровня вложенности (3-ти последний). Вопрос в том, как обойти последний уровень не в прямом порядке, а в обратном???
|
|
1
zak555
12.04.12
✎
15:10
|
по индексу ?
|
|
2
mzelensky
12.04.12
✎
15:11
|
(1) ну я тоже только этот вариант нашел...получить число строк и обойти с "количество-1" по "0".
|
|
3
Рэйв
12.04.12
✎
15:12
|
(2)А чего тогда спрашиваешь если нашел?
|
|
4
zak555
12.04.12
✎
15:12
|
(2) сформируй тогда запрос по "убываю"
|
|
5
mzelensky
12.04.12
✎
15:14
|
(3) ну мож еще какой вариант есть?! :)
|
|
6
DrShad
12.04.12
✎
15:15
|
а зачем такой обход нужен? может решается все гораздо проще?
|
|
7
Kashemir
12.04.12
✎
15:28
|
Процедура ОбойтиДерево(Коллекция, Уровень = 0)
Уровень = Уровень + 1;
Если Уровень = 3 Тогда
Для Н = 1 по Коллекция.Строки.Количество() Цикл
ИскомаяСтрока = КоллекцияСтроки[Коллекция.Строки.Количество() - Н];
КонецЦикла;
Иначе
Для Стр из Коллекция.Строки Цикл
ОбойтиДерево(Стр, Уровень);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
ДЗ = Новый ДеревоЗначений;
// наполняем ДЗ
ОбойтиДерево(ДЗ);
|
|
8
Kashemir
12.04.12
✎
15:29
|
+(7) Поправка: ОбойтиДерево(Коллекция, Знач Уровень = 0)
|
|
9
Vladal
12.04.12
✎
15:35
|
(0) Посмотри, может, пригодится:
|
|
10
Vladal
12.04.12
✎
15:35
|
Рекурсивный обход дерева значений с пересчетом иерархических итогов группировок
|
|