|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.09.2010, 13:50 | #1 |
Форумчанин
Регистрация: 07.03.2009
Сообщений: 123
|
Описание структуры данных n-арного (k-ичного) дерева
Доброго времени суток!
Встал вопрос описания n-арного (k-ичного) дерева. Т.е. дерева в котором у каждого узла может быть произвольное число потомков. Тонкость в том, что узлы (не имеющие потомков) должны содержать одно информационное поле, а листы несколько инф. полей. Все эти танцы с бубном направлены на описание древовидной структуры организации. Вот что накропал: Код:
Еще сложность заключается в том, что необходимо сохранять дерево в файл и загружать дерево из файла. Буду так же благодарен за пинки в этом направлении.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal Форум разработчиков Pascal и Delphi |
21.09.2010, 14:23 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
Каждый Child представляет собой экземпляр класса TItem. Короче говоря не изобретать велик, а посмотреть как в TreeView сделано
I'm learning to live...
|
|
21.09.2010, 14:40 | #3 | |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
|
|
21.09.2010, 15:12 | #4 |
Форумчанин
Регистрация: 07.03.2009
Сообщений: 123
|
Тогда так?
Код:
vedro-compota, рекурсивной
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal Форум разработчиков Pascal и Delphi Последний раз редактировалось Gonzo; 21.09.2010 в 15:15. |
21.09.2010, 15:45 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Одного класса хватит. Яж говорю посмотри в генофонд на TreeView это оч. полезное занятие для изучения механизма деревьев.
I'm learning to live...
|
|
21.09.2010, 16:23 | #6 |
Форумчанин
Регистрация: 07.03.2009
Сообщений: 123
|
TNode (лучше наверно назвать TTree) - класс узлов
TSheet - класс листов (не имеющий потомков) Такое разделение из-за того что в листах нам нужно хранить доп. информацию. Мы же можем в TObjectList хранить любые объекты производные от TObject? ---------------------------------------------------------------------------- Изначально предполагалось для визуализации использовать TreeView, я вот думаю может всё сделать на основе TreeView без промежуточной структуры? - При выборе файла загружать структуру дерева из файла; - При выборе листа в дереве, обращаться напрямую к файлу для просмотра сведений листа (сотрудника); - При выходе из программы/при смене файла данных перезаписывать файл данных. Но тогда встает вопрос привязки нодов дерева к данным файла. И соответственно по прежнему остаётся вопрос чтения/записи данных из/в файл. Может имеет смысл хранить данные в двух файлах? В одном структуру дерева (организации), а в другом непосредственно данные о сотрудниках (листах)?
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal Форум разработчиков Pascal и Delphi |
21.09.2010, 16:30 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
22.09.2010, 13:19 | #8 | |
Форумчанин
Регистрация: 07.03.2009
Сообщений: 123
|
Цитата:
Код:
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal Форум разработчиков Pascal и Delphi |
|
22.09.2010, 13:57 | #9 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Делал как-то давно программку для инвентаризации. Можешь пошарить. Может чего понравится.
Инвентаризация.zip |
22.09.2010, 20:06 | #10 |
Форумчанин
Регистрация: 07.03.2009
Сообщений: 123
|
Cо структурой разобрался.
Загрузку/сохрание решил сделать в файл XML. Работаю с XMLDocument, Delphi 7. Так как у меня содержать атрибуты будут только листья, то возникла проблема определения наличие атрибутов у тега. Именно не наличие какого-то определенного атрибута (XMLDocument.ChildNodes[i].HasAttribute('имя атрибута')), а наличие атрибутов как таковых. Т.е. нужно определять имеет ли тэг не менее одного атрибута. Это всё для того, чтобы при построении дерева, если тег (узел XML файла) имеет атрибуты, то мы формируем обьект Data (для класса из сообщения выше). Если НЕ имеет, то Data:=nil, а Caption:='Текст из тега'. Отойду пока от определения наличия атрибутов у тегов XML... Столкнулся вот с чем: накидал такую процедуру для обхода XML и визуализации дерева: Код:
Никто не просветит по этому поводу?
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal Форум разработчиков Pascal и Delphi Последний раз редактировалось Stilet; 23.09.2010 в 08:05. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Dll библиотека, описание нескольких типов данных | Vol666 | Общие вопросы Delphi | 2 | 19.05.2010 12:13 |
СИ. Списки. Описание структуры односвязного списка | Jane-sad | Помощь студентам | 9 | 17.05.2010 14:40 |
Запись в массив данных бинарного дерева | m9yt | Общие вопросы C/C++ | 2 | 14.03.2010 12:49 |
[C++] Описание структуры TORT | sasha20666 | Помощь студентам | 3 | 31.10.2009 17:52 |
[C] Абстрактные типы данных. Реализация дерева общего вида. | Dju | Помощь студентам | 0 | 11.05.2009 18:11 |