4.3 Динамические структуры данных
____________________________________________________________________
dispose_tree(ptr_tree); end;
end; 6: begin
writeln(UTF8ToConsole('Обход двоичного дерева слева:')); writeln;
obhod(root);
writeln;
end;
end; { end of case } until choose = 7
end.
4.3.7 Сортировка и поиск с помощью двоичного дерева
Двоичные деревья чаще всего применяются для сортировки и поиска.
Пусть для определенности сортируется массив, состоящий из целых чисел. Для этого сначала строится двоичное дерево по следующему алгоритму: в качестве корня двоичного дерева берется первый элемент массива. Следующие элемен-
ты массива становятся либо левыми, либо правыми потомками в зависимости от значения элемента. Если следующий элемент меньше корня, то он вставля-
ется в левое поддерево, если больше корня, то в правое поддерево, причем вставляется в нужное место в зависимости от значения текущего элемента. По-
сле построения двоичного дерева осуществляется его обход слева. Легко ви-
деть, что если двоичное дерево построено так, как описано выше, то при его обходе слева мы получим упорядоченный по возрастанию массив.
Такие двоичные деревья называются двоичными деревьями поиска или де-
ревья бинарного поиска (binary search tree), поскольку при поиске ис-
пользуется упорядоченность двоичного дерева. Поиск происходит следующим