Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

Какую библиотеку лучше использовать, для древоридных структур?   Найти похожие ветки 

 
Erik1 ©   (2005-02-04 11:26) [0]

У меня неполностью древовидные структуры, а как бы несколько паралельных деревен. Причем у нескольких корней пожет оказатся одинаковый ID. Причем считываются они один раз из базы и больше неменяются, по ним происходит поиск правил. К примеру проверяется на возможность добавления водимый элемент, проверяется наличие этого элементы в корне дерева. Предположим, что нашли 3 root элемента, остальные деревя отбрасываем и при вводе следующего элемента, работаем только с этими 3 выбраными деревями. И так смускаемся в низ по дереву правил, попутно анализируются дополнительные поля.
 Я сделал похожую вещь на основе масива, мне неочень понравилась моя реализация. Вот раздумываю пожет использовать библиотеку DeCAL наследника SDL, но там не реализованы деревя. Да и не всякая реализация подойдет, вобшем предлогайте варианты. Хочется сделать красиво.


 
Digitman ©   (2005-02-04 12:32) [1]


> Причем у нескольких корней пожет оказатся одинаковый ID


а это уже логическая ошибка.


> Причем считываются они один раз из базы


что за база такая дурная, имеющая дублированные перв.ключи записей в таблицах, описывающих деревья ?


 
Erik1 ©   (2005-02-04 12:46) [2]

Немного неправильно неписал, уникальный ID конечно есть, он он создан искуствено. Тоесть имеется некое устройство, сылка не нее это REF_ID и REF_ID может встречатся несколько раз, обазуя 3 различных дерева. Структура таблицы такова:
ID | Ref_id | Count | Reqired | Parent_id
Это я вчера придумал а поле Level выбросил. А что насчет SDL http://gurin.tomsknet.ru


 
Анонимщик ©   (2005-02-04 12:57) [3]

Я из твоего описания не понял ничегошеньки. Какие правила, какой еще водимый элемент? Где ищем? Можешь нормально написать?


 
Digitman ©   (2005-02-04 12:58) [4]


> Структура таблицы такова:
> ID | Ref_id | Count | Reqired | Parent_id


где у тебя здесь первичный, а где вторичный ключ ? что на что ссылается ?


 
Erik1 ©   (2005-02-04 13:25) [5]

to Digitman
ID первичный ключ, Parent_id указатель на родителя, Ref_id идентификатор устройства.


 
TUser ©   (2005-02-04 13:41) [6]

Все зависит от твоей задачи. Реализация деревьев через массив в большинстве случаев не является оптимальной. Если речь идет про хранение дерева в памяти для к-л обработки - то чаще всего применяют связные структуры. Про сие есть статья на алголисте + много информации в литературе (Ахо, Хопкрофт, Ульман, потом - Вирт, еще есть Кнут). Кода не привожу, т.к. про это действительно много написано, а кроме того совсем недавно это обсуждали здесь, и приводили листинги.
Если интересует хранение дерева в БД, то есть статья на этом сайте. В принципе также надо хранить ссылки на родителей и потомков, возможно - и на след. брата, как и при связной реализации. В принцыпе также есть и иерархические базы данных, но в силу ряда причин они не имеют столь широкого распространения, как релиционные.


 
msguns ©   (2005-02-04 13:42) [7]

>Digitman ©   (04.02.05 12:58) [4]
>где у тебя здесь первичный, а где вторичный ключ ? что на что ссылается ?

"Кто на ком стоял ?" (Проф.Преображенский (c))


 
Digitman ©   (2005-02-04 13:43) [8]


> Erik1 ©   (04.02.05 13:25) [5]
> to Digitman
> ID первичный ключ, Parent_id указатель на родителя


и родитель - это запись с ID, на который ссылается Parent_id доч.записи ?

тогда не понимаю, в чем проблема....


 
Erik1 ©   (2005-02-04 13:46) [9]

Конкретных проблем нет, просто подбираю подходящею библиотеку, поскольку собственая реализация ненравтся.


 
TUser ©   (2005-02-04 14:12) [10]

Подбери подходящюю собственную реализацию. Короая понравится.


 
Erik1 ©   (2005-02-04 15:52) [11]

А по какому параметру искать, я незнаю как называются обычные деревя с произвольным количеством потомков?


 
Digitman ©   (2005-02-04 15:59) [12]


> незнаю как называются обычные деревя с произвольным количеством
> потомков


так и называются - "деревья".

но у тебя не одно дерево, а "лес" ..

опять же непонятно, зачем какую-то библиотеку искать ?


 
Erik1 ©   (2005-02-04 16:11) [13]

Да потому, что прошло несколько месяцев и пришлось вспоминать как я это реализовал, а сомной еще человек работает. Так, что он должен месяц разбиратся в моих алгоритмах? У меня большое стремление к стандартизации наметилось, вот и ищу. А о DeCAL наследника SDL никто даже невысказался. В С++ она же используется и есть перевод для Delphi.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.056 c
3-1106300120
juice
2005-01-21 12:35
2005.02.20
Вставка записи.


3-1106591721
bSava
2005-01-24 21:35
2005.02.20
Can t load library fbclient.dll в Win98


14-1107117370
rjkz
2005-01-30 23:36
2005.02.20
Помогите найти компонент


8-1099495145
Змей
2004-11-03 18:19
2005.02.20
MediaPlayer


4-1104796344
Донской
2005-01-04 02:52
2005.02.20
Работа службы под winnt 4.0





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский