Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Древовидные структуры [D6, WinXP]


Страницы:   1 2

aleks-ran ©   (2005-02-01 09:58:00) 

Мастера, подскажите, есть ли уже готовый тип, для хранения древовидных структур, или как лучще его описать


aleks-ran   (2005-02-01 13:03:00) [1]

спасибо, буду рыть :)


Digitman   (2005-02-01 12:59:00) [2]

http://www.google.ru/

модели поиска - "Сетевая модель", "Сетевые структуры хранения данных", "Графы", "Предствление сетевой модели в виде графа", "Сетевая модель и графы", "Графы и матрицы" .. и т.д.  и т.п.


aleks-ran   (2005-02-01 12:51:00) [3]

тогда будьте добры [13], если не тяжело :)


Digitman   (2005-02-01 12:40:00) [4]


> aleks-ran ©   (01.02.05 12:35) [18]


это и есть сеть.


aleks-ran   (2005-02-01 12:35:00) [5]

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


Digitman   (2005-02-01 12:24:00) [6]


> aleks-ran ©   (01.02.05 12:14) [16]


> Фигура - это набор координат вершин


фигня какая-то ..

у тебя полигон что ли фигурирует некий ? и известны координаты его вершин ?
так и скажи ..


> Перемычка - это прямая соединяющая любые две точки на фигуре


опять же - фигня какая-то ..

что есть "две точки на фигуре" ?

есть полигон, он образован ребрами, соединяющими его вершины

ЧТО считать "перемычкой" ? то ли отрезок, соединяющий две произвольные вершины полигона, то ли отрезок, соединяющий две произвольные точки (не обязательно совпадающим с вершинами), принадлежащие двум разным ребрам полигона ..


aleks-ran   (2005-02-01 12:14:00) [7]

Фигура - это набор координат вершин соединенных между собой последовательнои образующих в итоге ломаную замкнутуюлинию.
Перемычка - это прямая соединяющая любые две точки на фигуре, либо фигура-перемычка, либо перемычка-перемычка
И мне надо эту хрень где-то хранить, дабы на канве, проходя, скажем по ветвям дерева, нарисовать все это.


Digitman   (2005-02-01 11:57:00) [8]


> А что такое сетевая модель



> 1) есть основная фигура


что такое "фигура" ? что такое "плоская конструкция" ?
ты оперируешь языком отнюдь не программиста ..


> 2) проводим первые N непересекающся перемычек


опять же - что такое "перемычка" ?
на языке строителей, к примеру, "перемычка" - это такая бетонная армированная хреновина..


aleks-ran   (2005-02-01 11:16:00) [9]

А выбрал древовидную модель из таких соображений:
1) есть основная фигура;
2) проводим первые N непересекающся перемычек которые делят 1) на "равноправные" N+1 поля - первые ветви деревьев;
3) в этих полях далее проводим перемычки - 2-е ветви дерева
и т.д.


aleks-ran   (2005-02-01 11:10:00) [10]


> Digitman ©

А что такое сетевая модель и где про нее прочитать, не подскажите?


Sergey_Masloff   (2005-02-01 10:40:00) [11]

Alx2 ©   (01.02.05 10:32) [11]
>Насчет обход не сделаешь - это зря :)
Да, погорячился ;-)


Alx2   (2005-02-01 10:32:00) [12]

Sergey_Masloff   (01.02.05 10:08) [7]
Насчет обход не сделаешь - это зря :)
С остальным согласен.


Digitman   (2005-02-01 10:31:00) [13]


> Sergey_Masloff   (01.02.05 10:10) [8]
> Digitman ©   (01.02.05 10:02) [3]
> >класс TTreeView
> Тоже плохо


ну автор же не уточнял изначально, зачем ему это нужно
просто - "готовый тип" ... чем TTreeView не "готовый тип" ?)

а вот после [9] стало понятно, что он вообще не в тот огород, по всей видимости, полез .. ему нужны структуры, поддерживающие не древовидную модель, а сетевую ..


aleks-ran   (2005-02-01 10:25:00) [14]

уточняю, мне надо делить перемычками плоскую конструкцию, причем перемычки могут быть как от края до края конструкции, так и от одной до другой перемычки.
Ничего лучше дерева для этого я не могу придумать.


Sergey_Masloff   (2005-02-01 10:10:00) [15]

Digitman ©   (01.02.05 10:02) [3]
>класс TTreeView
Тоже плохо. Это ж TWinControl там от контрола в 10 раз больше чем от дерева.


Sergey_Masloff   (2005-02-01 10:08:00) [16]

Alx2 ©   (01.02.05 10:02) [4]
>Стандарт:
Про стандарт - бабушке расскажи ;-) Шутка.
Это только двоичное дерево - ими не все ограничивается. Да и родителя нет у твоего описания. Не дерево это ибо обход не сделаешь.


Sergey_Masloff   (2005-02-01 10:05:00) [17]

Существует масса совершенно разных древовидных структур. Двоичные деревья, 2-3 деревья, красно-черные деревья и масса других. В основном используются 2 типа представлений - посредством массивов и посредством связаных списков. Тот и другой способ имеют свои преимущества и недостатки.
 Навскидку

PNode = ^TNode;
TNode = record
 data : Pointer; // Данные
 parent : Pnode;  // Родитель
 firstchild : PNode; // Первый из сыновей
 nextsibling : PNode; // Следующий брат
end;

Tree = PNode;


Александр Иванов   (2005-02-01 10:05:00) [18]

Alx2 ©   (01.02.05 10:02) [4]
Это не совсем стандарт, это бинарное дерево.


Alx2   (2005-02-01 10:02:00) [19]

aleks-ran ©   (01.02.05 9:58)
Стандарт:

Tree = class
  Left,Right : Tree;
end;

+ поля с методами


Digitman   (2005-02-01 10:02:00) [20]


> aleks-ran ©   (01.02.05 09:58)  


класс TTreeView


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо