Помогите пожалуйста с заданием по PASCAL.

Приложения:

Ответы

Ответ дал: BobbyFresnel
0

===== PascalABC.NET =====

// Реализовано банарное дкрево поиска

type

 Node = auto class

   public

      data: integer;

     left, right: Node;

 end;    

     

procedure Add(var root: Node; x: integer);

begin

 if root = nil then

 begin

   root := new Node(x, nil, nil);

   exit

 end;

 if root.data > x then

   Add(root.left, x)

 else if root.data < x then

   Add(root.right, x)

end;

     

function Find(root: Node; x: integer): boolean;

begin

 if root = nil then

   Result := false

 else if root.data = x then

   Result := True

 else if x < root.data then

   Result := Find(root.left, x)

 else // if x > root.data then

   Result := Find(root.right, x);

end;

 

begin

 var s := Seq(51, 25, 73, 15);

 var R: Node;

 R := nil;

 foreach var x in s do

   Add(R,x);

 Add(R, 31);

 Add(R, 93);

 Writeln(R); // если надо дерево посмотреть

 Find(R, 73.Print).Println; // вернет True, такой элемент есть

 Find(R, 75.Print).Print // вернет False, такого элемента нет

end.

Приложения:
Вас заинтересует