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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.66 c
1-1107245661
denis24
2005-02-01 11:14
2005.02.13
удаление нескольких строк в gridview


14-1106286296
Жук
2005-01-21 08:44
2005.02.13
Музыка из "Братьев Блюз"


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


14-1106491743
jack128
2005-01-23 17:49
2005.02.13
Задачка про визирей


1-1106676112
tazik
2005-01-25 21:01
2005.02.13
Как обратиться к объекту, если еасть его имя.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский