![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
что мешает рядом с именем ребенка хранить и прямой индекс в массиве. (для реализации поиска по спуску). ============= с\user\t просматриваем все элементы переходим к родителям и проверяем ключи ребенков (t) отбираем успешные. в отобранном переходим к родителям и проверяем (user) .....
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
Итак основная проблема:
узлы не имеют непосредственной адресации в массиве (будь то адрес ребенка, будь то адрес родителя), а есть только косвенная адресация (тот самый идентификатор). И здесь при любом алгоритме поиска по ключу (моем/вашем/...) остается только многократное "сканирование" массива. Чего собственно и хочется избежать. Конечно его можно ускорить если... как-то упорядочить массив по тем самым идентификаторам(м.б. с использованием доп. массива индексов). нечто подобное кажется было в ваших первых постах. И соответственно использовать алгоритмы для поиска в упорядоченных данных. Но упорядочивание усложняет схему вставки и удаления, а может и нет если... Выделять идентификаторы только с возрастанием (писать только в конец массива). Не проводить уплотнения при удалении (по крайней мере каждый раз). Но при этом возникают новые проблемы: -хватит ли идентификаторов; -хватит ли свободного места. P.S. использование имен в списке дочерних делает выбор в пользу вашего алгоритма спуска по дереву против моего. так что остается только оптимизация сканирования массива при использовании косвенной адресации (поиск узла по его идентификатору [не ключу!]).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 03.10.2014 в 11:09. |
![]() |
![]() |
![]() |
#14 | |||||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Насчет свободного места не знаю.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|||||
![]() |
![]() |
![]() |
#15 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]() Цитата:
Почему обязательно именно массив? Чем не устраивают деревья? И вообще, почему данные не в базе? Последний раз редактировалось waleri; 03.10.2014 в 12:49. |
|
![]() |
![]() |
![]() |
#16 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Видимо речь о двоичном поиске. А сортированностью там пахнет вообще? Да и добавление новых элементов порушит её
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Нет, ничего не сортировано, но препятствий сортировке нет.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#19 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
При таком раскладе при сортировке придется писать в произвольное место (оч. долго!) Но есть нюанс! раз такой узел был и если мы не сжимали массив (не удаляли физически из массива а только помечали удаление) то это место (с таким идентификаторам) ЕСТЬ и запись уже не в произвольное место а на место удаленного "как бы" элемента. Цитата:
и также избежать перемещений в массиве. 1.добавление в конец массива с новым идентификатором заведомо большим всех предыдущих. 2.замена физического сжатия массива введением логического флага "исключен". 3.замена отмеченных удаленными с таким же идентификатором.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 03.10.2014 в 14:07. |
||
![]() |
![]() |
![]() |
#20 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с деревьями | Alexey_kor | Общие вопросы C/C++ | 0 | 29.04.2012 19:14 |
Работа с двоичными деревьями. | Maksik | Фриланс | 4 | 22.06.2010 22:01 |
Рисонок домика с деревьями!!! | Cheerful-mermaid | Помощь студентам | 5 | 08.04.2009 22:32 |
Работа с деревьями и строками | Михаил_1987 | Помощь студентам | 1 | 27.01.2009 17:12 |