var i,n,p,s,k,m:integer;
a:array [1..11] of integer;
begin
n:=10;
p:=1;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(9)+1;
if a[i] mod 3 = 0 then p:=p*a[i];
write(a[i]:2,' ')
end;
writeln;
if p<>1 then writeln('Произведение элементов кратных 3 равно ',p)
else writeln('Элементов кратных 3 нет. Произведение элементов кратных 3 равно 0');
n:=9;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(9)+1;
if a[i] > 5 then
begin
s:=s+a[i];
k:=k+1
end;
write(a[i]:2,' ')
end;
writeln;
if k<>0 then writeln('Cреднее арифметическое элементов массива больше 5 равно ',s/k:0:3)
else writeln('Элементов больше 5 нет. Cреднее арифметическое элементов массива больше 5 равно 0');
n:=11;
write('Массив: ');
for i:=1 to n do
begin
a[i]:=random(9)+1;
write(a[i]:2,' ')
end;
writeln;
m:=a[1];
for i:=2 to n do
if a[i]>m then m:=a[i];
writeln('Самый большой элемент массива равен ',m)
end.
До сих пор мы рассматривали структуры данных, данные в которых располагаются линейно. В связном списке — от первого узла к единственному последнему. В динамическом массиве — в виде непрерывного блока.
В этой части мы рассмотрим совершенно новую структуру данных — дерево. А точнее, двоичное (бинарное) дерево поиска (binary search tree). Бинарное дерево поиска имеет структуру дерева, но элементы в нем расположены по определенным правилам.
Также смотрите другие материалы этой серии: стеки и очереди, динамический массив, связный список, оценка сложности алгоритма, сортировка и множества.
Для начала мы рассмотрим обычное дерево.
Деревья
Дерево — это структура, в которой у каждого узла может быть ноль или более подузлов — «детей». Например, дерево может выглядеть так:

Структура организации
Это дерево показывает структуру компании. Узлы представляют людей или подразделения, линии — связи и отношения. Дерево — это самый эффективный представления и хранения такой информации.