Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Древовидные структуры   Найти похожие ветки 

 
aleks-ran ©   (2005-02-01 09:58) [0]

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


 
Александр Иванов ©   (2005-02-01 09:59) [1]

Смотря что нужно, а так есть TTreeNode


 
REA   (2005-02-01 10:01) [2]

TObjectList из TObjectList например. Можно collection использовать.


 
Digitman ©   (2005-02-01 10:02) [3]


> aleks-ran ©   (01.02.05 09:58)  


класс TTreeView


 
Alx2 ©   (2005-02-01 10:02) [4]

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

Tree = class
  Left,Right : Tree;
end;

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


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

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


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

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

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

Tree = PNode;


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

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


 
Sergey_Masloff   (2005-02-01 10:10) [8]

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


 
aleks-ran ©   (2005-02-01 10:25) [9]

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


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


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


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

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


 
Alx2 ©   (2005-02-01 10:32) [11]

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


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

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


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


> Digitman ©

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


 
aleks-ran ©   (2005-02-01 11:16) [14]

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


 
Digitman ©   (2005-02-01 11:57) [15]


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



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


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


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


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


 
aleks-ran ©   (2005-02-01 12:14) [16]

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


 
Digitman ©   (2005-02-01 12:24) [17]


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


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


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

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


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


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

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

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

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


 
aleks-ran ©   (2005-02-01 12:35) [18]

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


 
Digitman ©   (2005-02-01 12:40) [19]


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


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


 
aleks-ran ©   (2005-02-01 12:51) [20]

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


 
Digitman ©   (2005-02-01 12:59) [21]

http://www.google.ru/

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


 
aleks-ran ©   (2005-02-01 13:03) [22]

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



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

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.027 c
14-1106392584
SergP.
2005-01-22 14:16
2005.02.13
Нужна фотография Ющенка


14-1106641846
Шишкин Илья
2005-01-25 11:30
2005.02.13
Поиск в WinXP


14-1105954273
pasha_golub
2005-01-17 12:31
2005.02.13
Социальная реформа в России. Противостояние.


14-1106675558
Ломброзо
2005-01-25 20:52
2005.02.13
Электрические библиотеки


3-1105617878
Russko
2005-01-13 15:04
2005.02.13
Update Faild