数据结构的书我也买了,c语言的我不是看得很懂,又急着用,望大家帮忙!

解决方案 »

  1.   

    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.