До сих пор мы рассматривали структуры данных, данные в которых располагаются линейно. В связном списке — от первого узла к единственному последнему. В динамическом массиве — в виде непрерывного блока.
В этой части мы рассмотрим совершенно новую структуру данных — дерево. А точнее, двоичное (бинарное) дерево поиска (binary search tree). Бинарное дерево поиска имеет структуру дерева, но элементы в нем расположены по определенным правилам.
Также смотрите другие материалы этой серии: стеки и очереди, динамический массив, связный список, оценка сложности алгоритма, сортировка и множества.
Для начала мы рассмотрим обычное дерево.
Деревья
Дерево — это структура, в которой у каждого узла может быть ноль или более подузлов — «детей». Например, дерево может выглядеть так:

Структура организации
Это дерево показывает структуру компании. Узлы представляют людей или подразделения, линии — связи и отношения. Дерево — это самый эффективный представления и хранения такой информации.
Ниже
Объяснение:
Плагиат — умышленное присвоение авторства чужого произведения науки или искусства, технических решений или изобретений. Плагиат может быть нарушением авторско-правового законодательства и патентного законодательства и в качестве таковых может повлечь за собой юридическую ответственность. С другой стороны, плагиат возможен и в областях, на которые не рас действие каких-либо видов интеллектуальной собственности, например, в математике и других фундаментальных научных дисциплинах.
Авторское право — это право интеллектуальной собственности. Каждый, кто вложил время, средства и умственный труд в создание какого-либо произведения, хотел бы защитить своё творение. В понятии «авторское право» различают три определения: автор, субъект и объект права. Автор — это всегда физическое лицо, которое создало произведение.
Program Rnd2020;
type rnd_array = array [1..10] of integer;
var
i:1..10;
k:integer;
a: rnd_array;
v:integer;
begin
(* инициализируем генератор случайных чисел *)
randomize;
for i:=1 to 10 do
a[i]:=rand(41)+10;
for i:=1 to 10 do
begin
v:=a[i];
if ((v>= -6) and (v<=30)) then
writeln(v);
end;
end.
Объяснение: