Поиск в дереве procedure Poisk(root:pNode;x:tInfo;var found:boolean;var pt:pNode);
begin
found:=false;
if root^.info=x then
begin
found:=true;
pt:=root;
end
else if root^.left<>nil then Poisk(root^.left,x,found,pt)
else if not found and root^.right<>nil then
Poisk(root^.right,x,found,pt);
end;
end;
Поиск в дереве поиска:
procedure Poisk(root:pNode;x:tInfo;var found:boolean;var pt:pNode);
begin
if root=nil then found:=false
else if root^.info=x then
begin
found:=true;
pt:=root;
end
else if x<root^.info then Poisk(root^.left,x,found,pt)
else Poisk(root^.right,x,found,pt);
end;
Пример с факториалом:
1, n=0
fact(n)=
fact(n-1)*n, n>0
function fact(n integer):longint;
begin
if n=0 then fact:=1
else fact:=n*fact(n-1);
end;
Дата добавления: 2014-01-05 ; Просмотров: 252 ; Нарушение авторских прав? ; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет