|
Обход дерева | ☑ | ||
---|---|---|---|---|
0
Kamich
16.11.16
✎
16:14
|
Добрый день форумчане!
Подскажите плз для чайника, как в массиве обойти дерево? Например есть данные -Автомобили - Мазда - Кия - БМВ -Мотоциклы - Сузуки - Ямаха Нужно получить следующее: Мазда Кия БМВ Сузуки Ямаха |
|||
1
Волшебник
модератор
16.11.16
✎
16:15
|
в массиве нет деревьев
|
|||
2
DrShad
16.11.16
✎
16:16
|
обходи дерево и заполняй массив, а еще лучше получи его из запроса формирующего дерево
|
|||
3
Про100Филя
16.11.16
✎
16:17
|
(0) процедура которая вызывает сама себя если заполнен родитель, если нет то записывай элемент в массив.
|
|||
4
Kamich
16.11.16
✎
16:18
|
В Массив передается значение,где проставлены галочки
|
|||
5
DrShad
16.11.16
✎
16:18
|
(3) а проверять на вхождение в массив?
и не процедура а рекурсивная функция |
|||
6
Kamich
16.11.16
✎
16:19
|
(5) Можно подробнее?
|
|||
7
DrShad
16.11.16
✎
16:19
|
(4) продолжайте наблюдения
|
|||
8
DrShad
16.11.16
✎
16:20
|
(6) о чем?
|
|||
9
Ёпрст
16.11.16
✎
16:20
|
(4) Посмотри, там еще в структуру что-то должно записываться и в сооответствие на выходе.
|
|||
10
Про100Филя
16.11.16
✎
16:20
|
что то типо
Процедура ОбходДерева(Строка= неопределено) Для каждого НоваяСтрока из ?(Строка=неопределено, Дерево.Строки, Строка.Строки) Цикл Если ЗначениеЗаполнено(НоваяСтрока.Родитель) Тогда ОбходДерева(НоваяСтрока) Иначе Массив.Добавить(НоваяСтрока); КонецЕсли КонецЦикла КонецПроцедуры |
|||
11
Про100Филя
16.11.16
✎
16:22
|
(5) может массив глобальный и возвращать ничего не надо, про проверку ничего не было, обход дерева строки с одинаковым названием будут считаться разными.
|
|||
12
DrShad
16.11.16
✎
16:24
|
(10) какой ужас
|
|||
13
Про100Филя
16.11.16
✎
16:34
|
(12) что не так?
|
|||
14
DrShad
16.11.16
✎
16:39
|
(13) все, а самое главное на выходе что?
|
|||
15
olegves
16.11.16
✎
16:44
|
дерево надо обходить сначала по солонь,а затем на солонь, чтобы голова не закружилась
|
|||
16
Про100Филя
16.11.16
✎
17:06
|
(14) Процедура какой выход? Перем Массив; и перед вызовом
очистить. |
|||
17
youalex
16.11.16
✎
17:16
|
(10) *Если ЗначениеЗаполнено(НоваяСтрока.Родитель) Тогда*
тут, скорее, Если НоваяСтрока.Строки.Количество() > 0 // |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |