Mọi người cho em hỏi, nếu chuyển code Pascal này sang C++ thì như thế nào ạ?
procedure init;
var x, maxx, i: longint;
procedure DFS(u: longint);
var j: longint;
begin
if (value[u]>maxx) then
begin
x:= u;
maxx:= value[u];
end;
for j:= 1 to n do
if (a[u,j] and free[j]) then
begin
free[j]:= false;
value[j]:= value[u]+1;
DFS(j);
end;
end;
begin
maxx:= 0;
value[1]:= 1;
for i:= 1 to n do free[i]:= true;
free[1]:= false;
DFS(1);
end;
Em muốn hỏi là có cách nào để thủ tục DFS sử dụng biến x và maxx của thủ tục init hay không mà không phải khai báo hai biến đó là cục bộ.
Nhân tiện cho em hỏi, cách cài đặt hai hàm lồng nhau như vậy gọi là gì ạ?