![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
procedure print (x: p; h: integer);
var i: integer;
begin print (x^.left, h+1);
for i:=1 to h*10 do write (“ ”);
writeln (x^.f); writeln;
print (x^.right, h+1) end.
Поиск элемента по дереву
procedure search (x: p; B: integer; var A: boolean);
begin if x^.f=B then A:=true else
while x<>nil do begin search (x^.left, B, A);
search (x^.right, B, A) end; A:=false end.
Создание дерева-копии
procedure copy (x: p; var y: p);
begin if x<>nil then begin new (y); y^.f:=x^.f;
copy (x^.left, y^.left); copy (x^.right, y^.right)
end end.
Нахождение глубины дерева
function depth (x: p): integer;
var h1,h2: integer;
begin if x=nil then depth:=-1 else
begin h1:=1+ depth (x^.left);
h2:=1+ depth (x^.right);
if h1>h2 then depth:=h1 else depth:=h2
end end.
Создание из массива упорядоченного дерева
procedure search1 (k: integer; var x: p);
var i: integer;
begin i:=1; while i<>n do begin
if x=nil then begin new (x); x^.f:=A[i];
x^.left:=nil; x^.right:=nil end
else
if A[i]<x^.f then search1 (A[i], x^.left)
else
if A[i]>x^.f then search1 (A[i], x^.right);
i:=i+1 end end.
Вычисление среднего арифметического
function sr (x: p): real;
var n: integer; S: real;
begin if x=nil then sr:=0 else
S:=0; n:=1;
while x<>nil do begin
S:=S*(n-1)/n+x^.f/n; n:=n+1;
sr (x^.left); sr (x^.right) end end.
Нахождение наибольшего элемента
procedure max (x: p; var M: integer);
begin if x=nil then write (“наибольшего нет”) else
M:=x^.f; while x<>nil do max (x^.left, M);
if x^.f>M then M:=x^.f; max (x^.right, M) end end.
Тексты программ для выполнения лабораторных работ
Дата публикования: 2014-11-04; Прочитано: 265 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!