Курсовая работа: Ссылочные типы. Динамические переменные

Node^.Left:= nil;

Node^.Right:= nil;

if Tree= nil then

{если дерево пусто, то созданный элемент сделать вершиной дерева}

Tree:= Node

else

{подсоединить новую вершину к дереву}

if Elem < Result^.Elem then Result^.Left:= Node

else Result^.Right:= Node

end

end;

Двоичное дерево можно рассматривать как рекурсивную структуру данных, состоящую из корневой записи, указывающей на левое и правое поддерево. Оба поддерева имеют такую же структуру: корень поддерева и правое и левое поддеревья. При этом, для представления дерева рекурсивной динамической структурой целесообразно модифицировать описание типа дерева, данное выше. А именно, удобнее изменить тип ссылок на левое и правое поддеревья с нетипизированного (Pointer) на типизированный:

type

TypeOfElem1= {};

Assoc1= ^ElemOfTree1;

ElemOfTree1= record

Elem: TypeOfElem1;

Left, Right: Assoc1

end;

Опишем процедуру вставки элемента рекурсивно.

procedure IncludeInTree2( NewElem: Assoc1; var SubTree: Assoc1 );

begin

if SubTree= nil then begin

SubTree:= NewElem;

NewElem^.Left:= nil;

NewElem^.Right:= nil;

end

else

if NewElem^.Elem < SubTree^.Elem then

К-во Просмотров: 554
Бесплатно скачать Курсовая работа: Ссылочные типы. Динамические переменные