|
Дерево значений | ☑ | ||
---|---|---|---|---|
0
semiluki
28.07.11
✎
18:52
|
Подскажите пожалуйста как найти максимальный уровень дерева значений
|
|||
1
poligraf
28.07.11
✎
18:54
|
ДЗ.КоличествоУровней()
|
|||
2
Axel2009
28.07.11
✎
19:09
|
(0) пробежаться по дереву с рекурсией
(1) нет такого.. =) |
|||
3
poligraf
28.07.11
✎
19:11
|
(2) блин. через три релиза в платформе будет. поторопился
|
|||
4
semiluki
28.07.11
✎
19:15
|
Так првильно?
Уровень = 0; ОбрататьДерево(ДеревоЗн.Строки); Процедура ОбрататьДерево(Строки) Уровень = Уровень + 1; Для Каждого Строка Из Строки Цикл ОбрататьДерево(Строка.Строки); КонецЦикла; КонецПроцедуры // ОбрататьДерево() |
|||
5
poligraf
28.07.11
✎
19:17
|
(4) нет.
Уровень-то ты как получишь? Либо переменную делать глобальной (в пределах модуля), что не айс, либо функция рекурсивную - которая будет возвращать уровень. |
|||
6
semiluki
28.07.11
✎
19:23
|
А как првильно?
|
|||
7
Axel2009
28.07.11
✎
19:27
|
НулевойУровень = 0;МаксУровень = 0;
ОбрататьДерево(ДеревоЗн.Строки, НулевойУровень); Процедура ОбрататьДерево(Строки, Знач Уровень) Уровень = Уровень + 1; Если МаксУровень < Уровень Тогда МаксУровень = Уровень; КонецЕсли; Для Каждого Строка Из Строки Цикл ОбрататьДерево(Строка.Строки, Уровень); КонецЦикла; КонецПроцедуры // ОбрататьДерево() |
|||
8
Rie
28.07.11
✎
19:28
|
(7) Можно и без глобальных переменных.
|
|||
9
poligraf
28.07.11
✎
19:30
|
(6) Думать же надо...
Вот 1С лениво запускать проверить и с СП сверится, но как-то так... Функция КоличествоУровней(СтрокиДЗ) Если СтрокиДЗ.Количество() = 0 Тогда Возврат 0 КонецЕсли; КоличествоУровней = 0; Для Каждого СтрокаДЗ ИЗ СтрокиДЗ Цикл КоличествоУровней = Макс(КоличествоУровней(СтрокиДЗ), КоличествоУровней); КонецЦикла; Возврат КоличествоУровней + 1; КонецФункции |
|||
10
poligraf
28.07.11
✎
19:31
|
*КоличествоУровней = Макс(КоличествоУровней(СтрокаДЗ.Строки), КоличествоУровней);
|
|||
11
poligraf
28.07.11
✎
19:32
|
Да и начальное условие не надо вроде как...
В бесконечную рекурсию не впадет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |