Контрольные примеры
|
Der_in.txt (a(b(d))(c)) (e(f)(g(i))(k(j))) |
Der_out.txt Считываю дерево номер 1... Дерево номер 1 считано. Скобочная запись дерева: (a(b(d))(c)) Считываю дерево номер 2... Дерево номер 2 считано. Скобочная запись дерева: (e(f)(g(i))(k(j))) Обработка леса... Исходный лес: Дерево 1: a b d c Дерево 2: e f g i k j
Получено бинарное дерево леса: a e f g k j i b c d
Скобочное представление бинарного дерева леса: (a(b(d00)(c00))(e(f0(g(i00)(k(j00)0)))0)) |
|
Der_in.txt (a(b(ffd))(c)) (e(f)(g(i))(k(j))) |
Der_out.txt Считываю дерево номер 1... Ошибка в записи дерева номер 1. Дерево не считано. Считываю дерево номер 2... Дерево номер 2 считано. Скобочная запись дерева: (e(f)(g(i))(k(j))) Обработка леса... Исходный лес: Дерево 1: e f g i k j Получено бинарное дерево леса: e f g k j i
Скобочное представление бинарного дерева леса: (e(f0(g(i00)(k(j00)0)))0) |
|
Der_in.txt asas |
Der_out.txt Считываю дерево номер 1... Ошибка в записи дерева номер 1. Дерево не считано. Обработка леса... Получено бинарное дерево леса пусто. |
|
Der_in.txt
|
Der_out.txt Файл пуст. |
Приложение
Для реализации леса использована структура данных, похожая на стректуру БД, но вместо 2-х сыновей у каждого узла может быть до 5-ти и нет принципиального различия между этими сыновьями.
-
type
Tree = ^tNode; {представление бинарного дерева}
Node = record {узел: }
Info: Elem; { содержимое}
Sub1: Tree;
Sub2: Tree;
Sub3: Tree;
Sub4: Tree;
Sub5: Tree;
end {Node}
Forest = array [1..ForLen] of Tree; {лес}
Elem = char;
const
ForLen = 50;
NilT = nil;
Спецификация процедур и функций
|
Имя |
Назначение |
|
procedure Otkaz (n: Byte); |
сообщения об ошибках |
|
function CreateT: Tree; |
создание БД |
|
function NullT (t: Tree): Boolean; |
проверка пусто ли ДБ |
|
function RootT (t: Tree): Elem; |
значание корня БД |
|
function T1 (t: Tree): Tree; |
Возвращает 1-е поддерево |
|
function T2 (t: Tree): Tree; |
Возвращает 2-е поддерево |
|
function T3 (t: Tree): Tree; |
Возвращает 3-е поддерево |
|
function T4 (t: Tree): Tree; |
Возвращает 4-е поддерево |
|
function T5 (t: Tree): Tree; |
Возвращает 5-е поддерево |
|
function Cons_T (e: Elem; L1,L2,L3,L4,L5: Tree): Tree; |
конструктор дерева |
|
procedure DestroyT (var b: Tree); |
удаление дерева |
|
procedure WriteT (D : Tree); |
вывод дерева в скоб представлении на экран |
|
procedure WriteT1 (D : Tree;var tt:text); |
вывод дерева в скоб представлении в файл |
|
function EnterT(s:string) : Tree; |
ввод дерева из файла |
|
procedure DisplayT1 (b: Tree; n,l: integer); |
вывод перев изобр дерева на экран |
|
procedure DisplayT2 (b: Tree; n,l: integer;var tt:text); |
вывод перев изобр дерева на экран |
|
procedure CreateForest(var F : forest); |
создание леса |
|
procedure Listin(T : Tree; var F:forest); |
возвращает лес поддеревьев дерева |
|
procedure Tail(T : Tree; var F,F1 : forest ); |
возвразает лес дерева без головы |
|
function Head (F : forest):Tree; |
возвращает головное дерево леса |
|
function NullF(F:forest):boolean; |
проверка пуст ли лес |
