求图论程序

来源:百度知道 编辑:UC知道 时间:2024/06/25 07:35:22
深度优先和广度优先遍历下面这张图,要求用以下四种方法实现:
1. 邻接矩阵+DFS (程序名称:matrixDFS.pas)
2. 邻接表+DFS (程序名称:tableDFS.pas)
3. 邻接矩阵+BFS (程序名称:matrixBFS.pas)
4. 邻接表+BFS (程序名称:tableBFS.pas)
从0开始遍历,程序的输出形式如:01357462 (这个是某一DFS的结果)
用Pascal语言,不要C的.
直接输出
输入(文件输入)已经编好.

01100000
00011000
00001000
00000101
00010110
00000001
00000001
00000000

狂汗 深度搜索和广度搜索的动态和静态实现...
静态好说,动态的估计要百行以上...
太闹人了点...

现写也没时间...

Program sdsf1;

Const
inf='sdsf1.in';
ouf='sdsf1.out';
Maxn=1000;

Var
visited:Array[1..Maxn]Of Boolean;
g:Array[1..Maxn,1..Maxn]Of Longint;
ans:Array[1..Maxn]Of Longint;
i,j,n,e,v,x,y,p:Longint;

Procedure dbf(k:Longint);

Var
t:Longint;

Begin

ans[p]:=k;
Inc(p);

If (p>n) Then Exit;

visited[k]:=true;
For t:=n DownTo 1 Do
If(g[k,t]<>-1) And( Not visited[t])
Then dbf(t)
{visited[k]:=False;
Dec(p); }

End;

Begin

FillChar(g,SizeOf(g),255);
FillChar(visited,SizeOf(visited),False);
p:=1;

Assign(Input,Inf);
Assign(Output,Ouf);
Reset(Input);