описать логическую функцию same(t), определяющую, есть ли в дереве T хотя бы два одинаковых элемента. Дерево бинарное.
Вот кое-что нашёл. Помогите это всё объединить в нормальную работающюю программу.
{ поиск элемента в дереве }
function Same(root:TreePointer;key:DataItem):boolean;
begin
Same:=false;
if root<>nil then
begin
while (root^.data<>key) and (root<>nil) do
begin
if key<root^.data then
root:= root^.left
else
root := root^.right;
end;
end;
if root=nil then
exit;
if root^.left<>nil then
if root^.left^.data=key then
Same := true;
if root^.right<>nil then
if root^.right^.data=key then
Same:=true;
end; { конец функции поиска элемента }
вот примерное описание типов TreePointer и DataItem:
type
DataItem=integer;
TreePointer = ^tree;
tree = record
data: DataItem;
left: TreePointer;
right:TreePointer;
end;