Составители:
Рубрика:
31
(6) замены всех отрицательных элементов дерева на их модуль;
(7) строящую дерево- копию исходного непустого дерева;
(8) нахождения наибольшего элемента дерева.
13. Напишите функции:
(1) подсчета количества вершин дерева;
(2) подсчета числа вхождений элемента E в дерево;
(3) вычисления суммы элементов дерева;
(4) определения глубины непустого дерева;
(5) вычисления среднего арифметического
элементов дерева.
14. В следующих программах найдите смысловые ошибки и укажите реакцию
машины на них, если есть описание:
type p=^element;
element=record
f: integer;
left, right: p end;
(1) печать дерева
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.
(2) поиск элемента по дереву
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.
(3) создание дерева-копии
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.
(4) нахождение глубины дерева
function depth (x: p): integer;
var h1,h2: integer;
begin if x=nil then wight:=-1 else
begin h1:=1+wight (x.^left);
h2:=1+wight (x.^right);
if h1>h2 then wight:=h1 else wight:=h2
end end.
(5) создание из массива
упорядоченного дерева
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)
Страницы
- « первая
- ‹ предыдущая
- …
- 29
- 30
- 31
- 32
- 33
- …
- следующая ›
- последняя »