tp写得const maxn=10; var a:array[1..maxn,1..maxn] of integer; {有向图} list:array[1..maxn] of integer; {记录访问路径} visit:array[1..maxn] of boolean; {已访问标志} n,sour,dest:integer; {N是节点个数,sour是起点,dest是终点}procedure init; {读入过程,你可以用别的方法给向图A及sour,dest赋值} var fin:text; i,p,q,m:integer;begin assign(fin,'findway.in'); reset(fin); readln(fin,n,m); fillchar(a,sizeof(a),0); for i:=1 to m do begin readln(fin,p,q); a[p,q]:=1; end; readln(fin,sour,dest); fillchar(visit,sizeof(visit),false); visit[sour]:=true; end;procedure findway(node,step:integer); {回朔求所有的路} var i:integer; begin if node=dest then begin write(sour); for i:=1 to step-1 do write(' ',list[i]); writeln; end else for i:=1 to n do if (a[node,i]=1) and (not visit[i]) then begin list[step]:=i; visit[i]:=true; findway(i,step+1); visit[i]:=false; end; end;begin init; findway(sour,1); end.
var a:array[1..maxn,1..maxn] of integer; {有向图}
list:array[1..maxn] of integer; {记录访问路径}
visit:array[1..maxn] of boolean; {已访问标志}
n,sour,dest:integer; {N是节点个数,sour是起点,dest是终点}procedure init; {读入过程,你可以用别的方法给向图A及sour,dest赋值}
var fin:text;
i,p,q,m:integer;begin
assign(fin,'findway.in');
reset(fin);
readln(fin,n,m);
fillchar(a,sizeof(a),0);
for i:=1 to m do begin
readln(fin,p,q);
a[p,q]:=1;
end;
readln(fin,sour,dest);
fillchar(visit,sizeof(visit),false);
visit[sour]:=true;
end;procedure findway(node,step:integer); {回朔求所有的路}
var i:integer;
begin
if node=dest then begin
write(sour);
for i:=1 to step-1 do write(' ',list[i]);
writeln;
end
else for i:=1 to n do
if (a[node,i]=1) and (not visit[i]) then begin
list[step]:=i;
visit[i]:=true;
findway(i,step+1);
visit[i]:=false;
end;
end;begin
init;
findway(sour,1);
end.