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

var

ServiceVar1, ServiceVar2: Assoc;

b: Boolean;

begin

b:= False;

ServiceVar1:= Tree;

if Tree <> nil then

repeat

ServiceVar2:= ServiceVar1;

if ServiceVar1^.Elem= Elem then {элементнайден} b:= True

else begin

{запоминание обрабатываемой вершины}

ServiceVar2:= ServiceVar1;

if Elem < ServiceVar1^.Elem then ServiceVar1:=

ServiceVar1^.Left

else ServiceVar1:= ServiceVar1^.Right

end

until b or ( ServiceVar1= nil );

SearchNode:= b;

Result:= ServiceVar2

end;

Как видно из описания, эта функция подобна ранее рассмотренной функции поиска элемента дерева (FoundInTree), но в качестве побочного эффекта фиксируется ссылка на вершину, в которой был найден заданный элемент (в случае успешного поиска), или ссылка на вершину, после обработки которой поиск прекращен (в случае неуспешного поиска). Сама процедура включения элемента в дерево будет иметь следующее описание.

procedure IncludeInTree( Elem: TypeOfElem; var Tree: Assoc );

var

Result, Node: Assoc;

begin

if not SearchNode( Elem, Tree, Result ) then begin

{формирование новой вершины в дереве}

new( Node );

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