Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Печать дерева



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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...