ВУЗ:
Составители:
19
Пример 3.8. Описать рекурсивную функцию Double, которая проверяет,
есть ли в дереве T хотя бы два одинаковых элемента.
Один из вариантов проверки состоит в использовании функции Count под-
счета числа вхождений заданного элемента El в дерево T. Функция Double по-
очередно проверяет число вхождений текущего значения T^.inf в дерево: если
число вхождений больше 1, то результат проверки – истина, если
нет, то такая
ситуация может возникнуть в левом поддереве или в правом поддереве.
function COUNT(T : Tree; El :integer ) : integer;
var k : integer;
begin
if T=nil then COUNT:=0
else
begin
if T^.inf = El then k:=1 else k:=0;
COUNT:=k+COUNT(T^.L,El)+COUNT(T^.R,El)
end
end; { COUNT }
function Double(T : Tree) : boolean;
begin
if T=nil then Double:=false
else
begin
if COUNT(T,T^.inf) > 1 then Double:=true
else
Double:= Double(T^.L) or Double(T^.R)
end
end; { Double }
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »