Читайте также:
|
|
Лабораторная работа
(Визуальное построение B-дерева в компоненте TreeView)
Постановка задачи
Пусть у нас существует главная таблица индексов Ti, описывающая некоторую аналитику документа. Структура данных таблицы реализована классическим B- деревом, где каждая запись представлена полями:
Нашей задачей является создание дешифратора (вычислителя узлов и ветвей дерева – парсера), отображающего данные в виде древовидной структуры, подобной проводнику Windows, а также интерактивное (визуальное) построение древовидной структуры документа, соответствующего его аналитике.
Алгоритм реализации парсера
Определим, что корнем или корнями документа отношения ParentID:ID, при:
ParentID=0 и ID = 1,2,3,…,n-1,n.
Равенство значений параметра ParentID = ParentID определяет, новый узел или достраиваемую ветвь, то есть ветвь, к какой отыскиваются дочерние ветви.
Условием идентификации корней является условие, при котором над головным узлом нет других узлов:
IF Node = nil Then ID:=0 Else ID:=Integer(Node.Data). Для каждой записи набора данных Ti формируется ветвь, отображающая в построителе дерева TreeView созданную или раскрытую дочернюю ветвь (узел): TreeView.Items.AddChildObject(Node, Ti.FieldByName('Name').AsString, Pointer(Ti.FieldByName('ID').AsInteger)); при этом для раскрытия узла создается фиктивная ветвь: TreeView.Items.AddChildObject(TreeNode, '', nil); которая, в последующем удаляется: IF Node.getFirstChild.Data = nil Then Node.DeleteChildren.Дата добавления: 2015-09-01; просмотров: 55 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Приложение 7 | | | Дизайн проекта |