Автор работы: Пользователь скрыл имя, 20 Октября 2014 в 20:48, курсовая работа
Когда поиск некоторого элемента необходимо осуществить в упорядоченной по возрастанию или убыванию последовательности, тогда применим алгоритм двоичного (бинарного) поиска. Метод использует стратегию «разделяй и властвуй», а именно: заданная последовательность делится на две равные части и поиск осуществляется в одной из этих частей, которая потом также делится надвое, и так до тех пор, пока обнаружится наличие искомого элемента или его отсутствие.
Введение 5
1. Общие сведения о бинарных деревьях 6
2.Описание интерфейса программы. 10
Заключение 11
Список использованных источников 12
Begin
{ Нет элемента - результата ноль }
IF p = Nil Then Count: =0
Else Begin
{ Рассматриваются варианты вызова функции с соответствующими условием}
{ Первый вариант - либо left, либо right не равны Nil }
If ( (v = NeMensheOdnoj) and ( (p^. left <> Nil) or (p^. right <> Nil)))
or
{ Второй вариант - и left, и right не равны Nil }
( (v = Dve) and ( (p^. left <> Nil) and (p^. right <> Nil)))
or
{ Третий вариант - либо left, либо right равны Nil }
( (v = NeBolsheOdnoj) and ( (p^. left = Nil) or (p^. right = Nil)))
{ Какой-то из вариантов сработал => ставим 1
и добавляем результаты рекурсивных вызовов левой и правой ветви}
Then Count: =1 + Count (p^. left,v) + Count (p^. right,v)
{ Иначе берём 0 и добавляем рекурсивные вызовы }
else Count: =0 + Count (p^. left,v) + Count (p^. right,v)
End;
End;
{----обход дерева----}
Begin ClrScr;
Writeln (Введите количество элементов дерева: ');
Readln (n);
randomize;
For i: =1 To n Do
Begin
Writeln (Введите количество элементов);
Read (c);
Vstavka (t,c);
End;
Print (t,0);
Writeln ('Количество вершин c >= 1 не нулевые связи: ',Count (t,NeMensheOdnoj));
Writeln (' Количество вершин c 2 не нулевыми связями: ',Count (t,Dve));
Writeln (' Количество вершин c <= 1 не нулевые связи: ',Count (t,NeBolsheOdnoj));
Readkey;
End.
.ru
Информация о работе Исследование алгоритма поиска на бинарном дереве