|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
Добрый день! структура данных показана на картинке. данные ввида id, parent_id, upline_id, left , rigth где parent_id верзний родитель, upline_id на родитель 1 уровня, left , rigth нижние ноды. вот если известна нода 3, как быстрее всего можно найти листья? на рисунке указаны знаком "?" может быть много уровней, поэтому пошаговым перебором будет долго ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 13:55 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
YuriyB, Делаешь Nested Sets модель и там будет элементарный запрос типа Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 14:23 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
Дерево - несортированное? Какая версия MySQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 14:23 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
Akina, автор Дерево - несортированное? Какая версия MySQL? версия последняя. дерево постоянно растущее, новые ноды добавляется вниз. к примеру, нода 3 , пригласила новую точку, и ее нужно бросить , где то внизу, но в ветке ноды 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 14:39 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
YuriyBверсия последняя.А цифру написать - трудно, что ли? YuriyBдерево постоянно растущее, новые ноды добавляется вниз.Я спрашивал о том, сортированное дерево или нет. Пробуй Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 15:21 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
авторЯ спрашивал о том, сортированное дерево или нет. nested set это судя по left , rigth ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 15:27 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
ScareCrownested set это судя по left , rigthСудя по YuriyBк примеру, нода 3 , пригласила новую точку, и ее нужно бросить , где то внизу, но в ветке ноды 3ни фига не nested set... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 15:44 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
Akina, я пока теоритически спрашиваю, таблицу данных можно поменять, задачу я описал и нарисовал, а версию бд любую поставлю, это вообще не принципиально. задача на уровне планирование. постоение бинарного маркетинг плана ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 16:33 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
можно даже несколько таблиц добавить. задача добавить нового в нужное место . и быстро это местно найти. желатеьльно что бы решение работало не только в бинаре, но и в тринаре ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 16:36 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
возможно будет и миллион нод, сотни уровней, так что рекурсия будет долго работать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 16:39 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
YuriyBтак что рекурсия будет долго работатьПрежде чем делать подобные заявления - хотя бы попробуйте. Генерация дерева на 1к уровней и 1кк узлов в CTE занимает не более минуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2019, 19:26 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
Деревья в базах данных можно хранить четырьмя основными методами: Adjacency List, Path Enumeration, Nested Set & Closure Table (НФ1-2-3). Код: sql 1. 2. 3. 4. 5.
из книжки "SQL Antipattern Strike Back" (49) тут описание скорости ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 03:26 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
полудух, спасибо. дерево не будет меняться, оно будет только рости, т е добавляться новые листья. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 17:56 |
|
как найти все листья в бинарном дереве по заданной точке
|
|||
---|---|---|---|
#18+
тогда надо смотреть на "Modify tree" = easy Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 23:00 |
|
|
start [/forum/topic.php?fid=47&fpage=38&tid=1829244]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 306ms |
total: | 456ms |
0 / 0 |