===== 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;
procedure Postfix(root: Node);
begin
if root = nil then exit;
Postfix(root.left);
Postfix(root.right);
Print(root.data)
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);
Postfix(R);
end.
===== 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;
procedure Postfix(root: Node);
begin
if root = nil then exit;
Postfix(root.left);
Postfix(root.right);
Print(root.data)
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);
Postfix(R);
end.
78/2=39 (0)
39/2=19 (1)
19/2=9 (1)
9/2=4 (1)
4/2=2 (0)
2/2=1 (0)
1/2=0 (1)
Остатки от деления записываем в обратном порядке.Получаем: 10011100
156=10011100 (2)
ответ: 4.
Развёрнутый ответ (решение) на всякий случай :)