Лабораторная № 14 «Деревья» по Техническим средствам автоматизации (Арсентьев Д. А.)

Кирилл Николоев ср, 20.04.2016 22:17

Задание: Разработать программу создания и отображения генеалогического дерева. Реализовать: 1) Процедуру ввода узлов дерева. 2) Процедуру удаления поддеревьев. 3) Процедуры обхода дерева: префиксным способом, инфиксным способом, суффиксным способом.

4) Процедуру записи структуры дерева в файл и чтения структуры дерева из файла. 5) Функцию сравнения поддеревьев. program lab14; {$APPTYPE CONSOLE} uses SysUtils; type pnode=^tnode; tnode=record data : integer;

count : integer; left : pnode; right : pnode end; var rootptr : pnode; select : Integer; newdata : Integer; newptr : pnode; Procedure InitTree(Var root:pnode); Begin root := nil; Writeln('The tree has been initialised.');

End; Function TreeEmpty(root:pnode):boolean; Begin TreeEmpty := (root = nil) End; Procedure AddToTree(Var root:pnode; newdata:integer); Begin If root = nil then Begin New (root); root^.data := newdata;

root^.count := 1; root^.left := nil; root^.right := nil; End Else if newdata root^.data then AddToTree(root^.right,newdata) else Inc(root^.count); End; Procedure print(root:pnode; level:integer); var space:Integer;

Begin If root nil then Begin space := 5*level; print (root^.right, level+1); Writeln(root^.data : space); print (root^.left, level+1); End End; Procedure DeleteFromTree(root:pnode; datatodel:integer);

var current, parent, inordsuc, inordparent:pnode; leftchild : Boolean; Begin New(current); New(parent); New(inordsuc); New(inordparent); current:=root; parent:=nil; {search} while (current^.data datatodel) do begin

Скачать файлы

Похожие документы