Root
..Folder1
....Folder1_child1
....Folder1_child2
..Folder2
Т.е. в древовидной форме (просто с отступами).
Сделал вроде как рекурсию (самовызов процедуры), однако при первом же заходе в нее на слове begin начала процедуры выскакивает Stack overflow. что-то не пойму в чём дело =/
program tree;
uses crt;
const nmax=100;
type leaf=record
name:string[255]; {nazvanie folder'a}
parent:integer; {nomer elementa v massive - roditelya}
end;
massive = array[1..nmax] of leaf;
var i,j,n:integer;
m:massive;
stemp:string;
procedure showtree(m:massive;nomer,otstup:integer);
var i,j:integer;
space:string;
begin
for i:=1 to n do begin
if m[i].parent=nomer then begin
space:='';
for j:=1 to otstup do begin
space:=space+'.';
end;
writeln(space,m[i].name);
showtree(m,i,otstup+1);
end;
end;
end;
{====================================================}
begin
randomize;
clrscr;
n:=0;
{add first element}
m[1].name:='Sample';
m[2].parent:=0;
n:=n+1;
{add some other elements - 10 items}
for i:=1 to 10 do begin
j:=random(1000);
str(j,stemp);
m[n+1].name:=stemp;
m[n+1].parent:=random(n+1); {0..n}
n:=n+1;
end;
{print the massive m}
for i:=1 to n do begin
writeln(i:2,'=',m[i].name:5,' : ',m[i].parent:2);
end;
{show tree}
writeln('===========This is tree==========');
showtree(m,0,0);
writeln('........PRESS ENTER to EXIT.......');
readln;
end.