Текущий архив: 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.49 MB
Время: 0.038 c