Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
• Заказать продвижение сайта
• Программа для рисования блок-схем
• Инженерный калькулятор онлайн
• Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 58093
Invision Power ... 57348
Организация зап... 57151
Модуль Forms 56352
Создание отчето... 54765
Приложение «Про... 54144
Подключение Mic... 53936
Оператор выбора... 53726
ТЕХНОЛОГИИ ДОСТ... 50627
Программируемая... 47057
Пример работы с... 46388
Имитационное мо... 46381
21 ошибка прогр... 41466
Реклама
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

Пользователей: 13,006
новичок: margaritamoroz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы узла коммутации сообщений на GPSS + Пояснительная з...
Моделирование работы ЭВМ на GPSS + Пояснительная записка
Программа тестирования и обучающая программа по математике на Turbo Pasc...

Реклама

Списки потомков + код на Pascal
Для деревьев произвольного вида узловое представление использовать затруднительно, так как вершина может иметь произвольное число потомков. В таких случаях обычно используют представление деревьев на основе списков потомков, которые определяются для каждой вершины дерева. Такие списки могут представляться любым способом, но чаще используются связанные списки.
Программное описание структуры можно представить следующим образом:
Type
LIST={тип лист, описание списков}
Position={определение позиции в списке}
TREE=record
Header:array[1..maxnodes] of LIST;
DATA:array[1..maxnodes] of info_type;
Root:integer;
Node:integer; {текущее число вершин}
End;



В простейшем случае для реализации списков потомков можно использовать один единственный одномерный массив. Тогда описание абстрактного типа данных дерево (TREE) будет иметь следующий вид:
Type
TREE=record
Header:array[1..maxnodes] of integer;
DATA:array[1..maxnodes] of info_type;
nodes:array[1..maxnodes] of integer;
Root:integer;
Node:integer;
End;



Для такого представления нумерация вершин может быть совершенно произвольной.
Определение левого потомка, правого и предка.


function LEFT (i:integer; T:TREE):integer;
var R:integer;
begin
LEFT:=T.header[i];
End;
Function RIGHT (i:integer; T:TREE):integer;
Var R:integer;
Begin
R:=T.header[i];
If R=0 then RIGHT:=0 {лист}
Else
Repeat
RIGHT:=R; R:=T.nodes[RIGHT];
Until R:=0;
End;
Function PARENT (i:integer; T:TREE):integer;
Var P,j:integer;
Begin
PARENT:=0; {предок не найден}
For p:=1 to T.node do
Begin
j:=T.header[P];
while j<>0 do
if i=j then PARENT:=P
else j:=T.nodes[j];
end;
end;
end;








Опубликовал Kest February 03 2010 14:14:16 · 0 Комментариев · 4172 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
• Фолловь меня в Твиттере!
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
База предприятий ...
Visual Basic Script
EMSQuickImport
Rotolabel
Delphi 6/7 базы д...
Мод "проверочный ...
ActiveX в Delphi
IconCut [Исходник...
Определние размер...
Добавление к ссы...
Drag&Drop;
Ведение справочны...
Пример создания W...
Обучение Borland ...
Иллюстрированный ...
Разработка интерн...
AlnComponents
Добавление басса ...
Создание лабиринт...
CaptionButton

Топ загрузок
Приложение Клие... 100264
Delphi 7 Enterp... 74749
WAV 1.7.1" class="side">Converter AMR<-... 20015
Borland C++Buil... 10458
GPSS World Stud... 8742
Borland Delphi ... 7440
Turbo Pascal fo... 6866
Visual Studio 2... 4864
Калькулятор [Ис... 3828
FreeSMS v1.3.1 3480
Случайные статьи
Числовые типы данн...
Обращение к памяти...
Объект PageSetup
Коллекция объектов...
Взаимосвязь станда...
Использование комп...
Окно предваритель...
В данном примере н...
Ещё о защите e-mai...
Трояны. Классификация
основное имя польз...
Поиск элементов в ...
Out of memory
Полная ленивость
Операторы
в вашей области - ...
Ресурсы
Сложение упакованн...
Поиск документов в...
Заблуждения и недо...
Как узнать - прису...
Последниедва запре...
Определение длины ...
Стандартные процед...
7 основных стратег...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?