您的位置:首页 > 其它

有关图的存储结构的程序4(图论算…

2016-04-08 21:45 309 查看
用广度优先搜索建立图的邻接表。

程序:

var
state,num:array[0..100] of longint;
v:array[0..100] of boolean;
g:array[0..100,0..100] of longint;
n,e:longint;

procedure bfs;
var

head,tail,i,ans:longint;
begin
head:=0;
tail:=1;
state[1]:=1;
v[1]:=false;
ans:=1;
repeat

inc(head);
for
i:=1 to num[state[head]] do

if v[g[state[head],i]] then

begin

inc(tail);

state[tail]:=g[state[head],i];

v[g[state[head],i]]:=false;

end;
until
head>=tail;
for i:=1 to head
do

write(state[i],' ');
end;

procedure init;
var
x,y,i:longint;
begin
readln(n,e);
for i:=1 to e do

begin

readln(x,y);

inc(num[x]);

inc(num[y]);

g[x,num[x]]:=y;

g[y,num[y]]:=x;

end;

fillchar(v,sizeof(v),true);
end;

begin
init;
bfs;
end.

版权属于: Chris

原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102v0tw.html

转载时必须以链接形式注明原始出处及本声明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: