Andrey
Надо исключить из дерева Иркутскую область
Andrey
нет родитель - ребенок
Andrey
дерево
Snusmumriken
Индекс построен по областям?
Andrey
и там где то есть иркутская область
Andrey
надо построить массив без нее
Andrey
ид парент ид
Snusmumriken
В дереве в любом случае есть "родитель-ребёнок". Та нода к которой подключены другие есть родитель этих других. Это же дерево.
Стек — способ создать явные связи родитель-ребёнок (с которыми мы будем работать) для текущей ноды. Когда мы спускаемся по дереву, добавляем в стек ту ноду, с которой мы спустились. В неё мы будем возвращаться когда обойдём детей. Циклом. Без рекурсии ))
Snusmumriken
В рекурсивной фигне, этим стеком работает стек рекурсии. А тут это может быть обычный список.
Snusmumriken
Блин, уже думаю что проще написать-показать но влом, спать.
mva
ид парент ид
приведи пример куска массива (если он словарь), что в ключах, что в значениях
Andrey
страна муниц образованте город район если есть село если есть удица если есть дом строение корпус
Andrey
ну на вскидку
Andrey
или кадастроаая схема
Andrey
село в таком то районе или области итд
Andrey
обычное дерево
Andrey
село такое то в таком то районе
Anonymous
Снус спец по областям нашей страны :)
Andrey
или городе (нов москва)
Snusmumriken
Andrey
короче именно дерево. и как тут без рекурсиц
Andrey
ц
Andrey
й
Andrey
nested set не в счет
Snusmumriken
Ну вот так вот. Ты просто пока не пробовал.
mva
Ну я бы лучше бы переформатировал входяий массив в более удобный для работы массив. А-ля:
{
...
70 = {
634 = {
offices = {
...
34 = { addr = "moo" },
...
45 = { addr = "foo" },
...
}
},
...
77 = {
109 = {...}
119 = {...}
},
...
}
Andrey
нет расскажите как исключить из массива что то без рекурсий массив содержит ид и парентид
Andrey
не получится же
mva
если бы ты использовал знаки препинания, а ещё показал бы уже наконец псевдокод с примером массива, чтобы исключить разночтение и недопонимания того что ты имеешь в виду...
Andrey
сек
Andrey
как в телеграм что то сфотать ?
Andrey
куда жать
Snusmumriken
Фотиком.
Snusmumriken
Прикрепление картинки.
Andrey
Andrey
массив содержит ид и парент ид
Andrey
без рекурсий убрать обведенное
Anonymous
My brothers how can I know. Offices located in lua
Snusmumriken
Ладно, я просто тебе потом напишу, хорошо?
Фактически, это (рекурсивный или нерекурсивный) обход дерева, добавление всех его элементов в список и дальнейшая фильтрация.
Andrey
да, ок но как ты его без рекурсий обойдешь
Snusmumriken
Со стеком ))
Andrey
это интересно
Snusmumriken
Я уже пять раз рассказал.
Snusmumriken
Стек == список парентов. Парентид не нужен. Уже есть список. Он составлялся пока мы доходили до текущей точки.
Andrey
Ок
Snusmumriken
Потом покажу, при случае.
Andrey
Хорошо. спасибо
mva
массив содержит ид и парент ид
ты восьмой раз говоришь "массив содержит ид и парент ид", но не показываешь как этот массив выглядит в виде кода.
То, что на картинке - массив множественной вложенности ровно как я показал выше.
Snusmumriken
Andrey
Andrey
mva
но зачем делать вот так вот через жопу (кстати key=nil равно отсутствию key), если можно множественную вложенность?
Andrey
еще раз - без нестед сет
Andrey
кей нил это рут
Andrey
нет у него родител
mva
это lua
mva
здесь key=nil это нет key
Andrey
хорошо кей = слон (рут)
Andrey
короче кей равно минус чему то там
Andrey
и это не нил
Andrey
и это означает что у него нет родителеля
mva
короче кей равно минус чему то там
в общем, ты искуственно ограничиваешь область решения чтобы подогнать под "без рекурсии никак".
Ибо за три попытки у меня та ки не получилось у тебя узнать почему нельзя вместо ебли с рекурсией на каждый чих, один раз переделать массив в пучок удобных вложенных словарей и работать потом уже с ними 😊
mva
Andrey
Andrey
вправо влево
mva
вообще, изначальный вопрос был о том, как при рекурсии заглянуть в верхний скоуп
mva
что тоже не то, чтобы каждый день нужно
Andrey
да
Andrey
именно так
Anonymous
Well, in Python, when I want to know if the library I want to use is there, or do not use "socket"
mva
ну и ответ на это я таки давал (правда, уже посреди обсуждения стеков) :)
Andrey
mva
mva
Andrey
это в любом языке есть...
mva
дык кто бы спорил
Andrey