|   |   | 
| 
 | Обход дерева значений с конца | ☑ | ||
|---|---|---|---|---|
| 0
    
        Paimiji 12.05.21✎ 11:18 | 
        Есть ли какой-нибудь способ обойти дерево значений с конца и при этом неизвестна глубина вложенности дерева?     | |||
| 1
    
        ДенисЧ 12.05.21✎ 11:19 | 
        Найти конец. И от него плясать вверх.
 Только зачем? | |||
| 2
    
        Paimiji 12.05.21✎ 11:19 | 
        Или самый простой способ это перевернуть его?     | |||
| 3
    
        fisher 12.05.21✎ 11:26 | 
        Тю. Гугли "способы обхода дерева" или как-то в этом духе. Их там несколько. Выбирай подходящий.     | |||
| 4
    
        fisher 12.05.21✎ 11:27 | 
        Хотя я бы начал с определения "конца дерева" и уточнения нужного порядка обхода.     | |||
| 5
    
        fisher 12.05.21✎ 11:28 | 
        Определения - в смысле определить что вообще такое в твоей голове "конец дерева". Это момент неочевидный.     | |||
| 6
    
        lodger 12.05.21✎ 11:28 | 
        смотря что ТС имеет ввиду под "способ обойти".
 а так, пишем рекурсивные функции через СтрокаДерева.Родитель и СтрокаДерева.Строки; | |||
| 7
    
        ДенисЧ 12.05.21✎ 11:29 | 
        (6) Так это сверху получается...     | |||
| 8
    
        acht 12.05.21✎ 11:30 | 
        (2) > это перевернуть его?
 Я бы на это посмотрел. | |||
| 9
    
        fisher 12.05.21✎ 11:33 | 
        "Зеленым вверх!" (с) прапора сажают деревья     | |||
| 10
    
        ДенисЧ 12.05.21✎ 11:53 | ||||
| 11
    
        polosov 12.05.21✎ 11:57 | 
        Задачи про шарики кончились, теперь на собеседованиях задают вопрос про обход дерева с конца.     | |||
| 12
    
        GANR 12.05.21✎ 12:19 | 
        (2) можно прикладную задачу? так будет понятнее     | |||
| 13
    
        Повелитель 12.05.21✎ 12:55 | 
        (0) Почему нет.
 В первом цикле пробежаться и записать в массив строки, в нужном порядке. Во второй обход цикл по массиву. | |||
| 14
    
        rphosts 12.05.21✎ 13:02 | 
        (4) видимо самый дальний лист... дерево ведь балансированное     | |||
| 15
    
        Serg_1960 12.05.21✎ 13:06 | 
        [юмор]
 Если учесть что дерево можно сортировать, то вопрос о "конце" дерева становится подобным спору о количестве ангелов на острие иглы... | |||
| 16
    
        rphosts 12.05.21✎ 13:07 | 
        (14) * не балансированное     | |||
| 17
    
        ДедМорроз 12.05.21✎ 13:10 | 
        Я делал обход без стека через массив.
 Когда мы встречаем ветку,мы добавляем ее в массив. С конца массива берём ветку для обработки и добавляем в него все вложенные. Получается,что каждую ветку мы обходим как бы с конца. | |||
| 18
    
        mistеr 12.05.21✎ 13:15 | 
        (0) Ну где там ТС? Неужели корпит над нормальной постановкой задачи, вопреки традициям Мисты?     | |||
| 19
    
        acht 12.05.21✎ 13:16 | 
        (17) Все это делается банальным порядком действий внутри рекурсивной процедуры     | |||
| 20
    
        GedKo 12.05.21✎ 13:21 | 
        добавляем колонку "уровень". а дальше цикл от максимального "уровень" + НайтиСтроки() + с продолжить есть Строки.Количество()>0     | |||
| 21
    
        polosov 12.05.21✎ 13:26 | 
        (20) Ага, добавляем "уровень", пробегаем дерево сверху-вниз и проставляем уровни, а потом развлекаемся обратным обходом?     | |||
| 22
    
        GedKo 12.05.21✎ 13:31 | 
        (21) при формировании дерева можно сделать и заполнение уровня. а при изменениях - корректировку.
 я хз зачем подобное нужно, но если очень нужно - вполне рабочий вариант. | |||
| 23
    
        Малыш Джон 12.05.21✎ 13:39 | 
        (0) "все придумано до нас". Лень погуглить?     | |||
| 24
    
        H A D G E H O G s 12.05.21✎ 13:58 | 
        Дерево.Колонки.Добавить("КолонкаПоиска",Новый ОписаниеТипов("Булево"));
 МассивСтрок=Дерево.Строки.НайтиСтроки(Новый Структура("КолонкаПоиска",Ложь),Истина); Для Каждого СтрокаДерева Из МассивСтрок Цикл Если СтрокаДерева.Строки.Количество()<>0 Тогда Продолжить; КонецЕсли; РодительскаяСтрока=СтрокаДерева; Пока Истина Цикл РодительскаяСтрока=РодительскаяСтрока.Родитель; Если РодительскаяСтрока=Неопределено Тогда Прервать; КонецЕсли; КонецЦикла; КонецЦикла; | |||
| 25
    
        АнализДанных 12.05.21✎ 14:55 | 
        (0) 
 Процедура ОбходДереваРекурсивно(Дерево) Для Каждого Строка Из Дерево.Строки Цикл // Если процедура здесь, то обработка идет сверху-вниз ОбработатьСтрокуДерева(); ОбходДереваРекурсивно(Строка); // Если процедура здесь, то обработка идет снизу-вверх ОбработатьСтрокуДерева(); КонецЦикла; КонецПроцедуры | |||
| 26
    
        H A D G E H O G s 12.05.21✎ 15:04 | 
        (25) Где то на тысячной строке, 1С превратиться в тыкву.     | |||
| 27
    
        acht 12.05.21✎ 15:17 | 
        (26) Уровне     | |||
| 28
    
        H A D G E H O G s 12.05.21✎ 15:24 | 
        (27) да, пардон, уровне     | |||
| 29
    
        МихаилМ 12.05.21✎ 15:32 | 
        (0)что такое конец дерева значений?     | |||
| 30
    
        fisher 12.05.21✎ 15:39 | 
        Где начало того конца, которым оканчивается начало? (с) Козьма Прутков     | |||
| 31
    
        polosov 12.05.21✎ 15:41 | 
        (30) В начале же. НУ что за вопрос у ребят Прутковых.     | |||
| 32
    
        Bigbro 12.05.21✎ 15:44 | 
        главное начиная обходить дерево с конца - не обнаружить себя в лесу...     | |||
| 33
    
        H A D G E H O G s 12.05.21✎ 15:49 | 
        (29) Массив листьев     | |||
| 34
    
        Cthulhu 12.05.21✎ 15:51 | 
        "А этот пацак все время говорит на языках, продолжения которых не знает!" (с)
 - ... что нам мешает выполнить задачу? — Геометрия, — со вздохом говорит Петров. — Ну, вы просто не обращайте на нее внимания, вот и все! — произносит Морковьева.(с) автор, что за бред ты несешь?. 1) с конца которой из веток дерева? 2) добрались до развилки - дальше куда идем? вверх - игнорируя другое ответвление от развилки? тогда это будет не обход (пропуски). вниз по другой ветке от развилки? тогда это не обход с конца - потому что вниз. итого: | |||
| 35
    
        Cthulhu 12.05.21✎ 15:52 | 
        (33): вот да, разве что. не от конца, а от массива концов.     | |||
| 36
    
        Йохохо 12.05.21✎ 15:53 | 
        (33) это поверхность, но не граница и не конец     | |||
| 37
    
        tesei 12.05.21✎ 17:31 | 
        (30) В конце концов среди концов конец найдётся наконец!
 Однажды нес пастух куда-то молоко, Но так ужасно далеко, Что уж назад не возвращался. Читатель! он тебе не попадался? К. Прутков. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |