Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2012, 17:54
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Построение Tree дерева
Смысл такой в базе лежит дерево реализованное на списках смежности.
Нужно отстроить такое же дерево на странице и реализовать по нему поиск и быстрый доступ к нодам(узлам).

Пока что есть две идеи:

1. Передавать дерево в виде:
[{id:1, pid:0, child:1, title:'one 1'},{id:2, pid:1, child:0, title:'one 1.1'}]


2. Передавать дерево в виде:
[{id:1, pid:0, title:'one 1', child:[{id:2, pid:1, child:0, title:'one 1.1'}]}]


Мысли такие:
В первом случае неясно пока как сделать дерево быстро и элегантно, зато поиск по дереву будет быстрый, в один цикл.

Во втором случае гоним рекурсию и строим дерево, но поиск по нему получается сложнее.

Склоняюсь пока к первому варианту, может у кого есть мысли по этому поводу.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.03.2012 в 17:58.
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2012, 18:04
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Дерево может быть на 10 000 узлов и выше. Конечно я пойду путем тестов и т.д. но если кто-то реализовывал подобное, то можно советовать.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.03.2012 в 18:11.
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2012, 18:14
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Gozar,
интересует вопрос, какого рода будет поиск. Потому что при таком количестве узлов, мне кажется лучше реализовать загрузку уровня по ajax запросу.
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2012, 18:17
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

nikita.mmf
Загрузка уровня по ajax запросу это интересно, но это и так легко реализовать, ради такого случая я не стал бы создавать тему.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2012, 19:24
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Если вдруг кого заинтересует подобная темя, то я выбрал второй вариант, рисовать его проще.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #6 (permalink)  
Старый 02.03.2012, 19:26
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Вот статья на эту тему
В итоге у тебя получится подобная структура:
+--+-------+--------+-----+------+-------
|id|name   |parent  |left |right |depth |
+--+-------+--------+-----+------+-------


Поясню: все элементы имеют идентификатор, родитель, соседние элементы (точки начала/конца нода), и уровень текущего нода. Т.о имея очень большую и глубокую структуру элементов, где используется интенсивный поиск, эффективней всего отталкиваться от элементов которые ближе всего находятся к искомому.

Последний раз редактировалось monolithed, 02.03.2012 в 19:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация дерева ICEMAN3141592 ExtJS 11 24.01.2012 20:18
jqgrid tree and checkbox gaz2003 jQuery 0 17.12.2011 15:59
необычное раскрытие дерева dsnj jQuery 7 30.11.2011 14:40
TreeStore, стили для элементов дерева. Black_Prince ExtJS 1 26.09.2011 13:33
jQuery, jsTree - обновление дерева через ajax extremum.func jQuery 2 09.11.2009 14:48