求一道Pascal的程序!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:27:04
求Pascal语言的程序:
按一个邻接矩阵输入一个图,输出广度优先搜索遍历(序号小的先遍历)
输出样例:V1-V2-V5-V4

递归算法:
program graph02;
{******** 邻接表表示的无向图BFs递归算法 **********}
{******* By DuQinglong 2005.3 *******}
const maxn=10;
type
datatype=integer;
nodep=^node;
node=record {*** 邻接表结点 ***}
vertex:1..maxn;
next:nodep;
end;
gnode=record {*** 图中数据结点***}
data:datatype;
head:nodep;
end;
graph=record {*** 图的类型 ***}
a:array[1..maxn]of gnode;
vexn:integer;
end;
var g:graph;
f:array[1..maxn]of boolean; {**flag**}
qu:array[1..maxn]of integer;
front,rear:integer;
fin,fout:text;
{*** 输入文件要求:第一行数据为图顶点个数,从第二行开始,第i行第一个数据为第i个结点的数据,
后面的为第i个结点的邻接顶点的编号 ***}
procedure buildadjlist(var g:graph); {*** 建立图的结构,用邻接表表示 ***}
var i,t:integer; p,q:nodep; k:1..maxn;
begin
readln(fin,g.vexn); {*** 读入图的顶点个数 ***}
for i:=1 to g.vexn do
begin<