谁能把图(数据结构)的广度优先搜索源程序给我?

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:49:51

广度优先遍历

(1)邻接表
procedure bfs(i:integer);
begin
create(q); {建队列,并初始化}
write(vex[i].data); {访问vex}
vex[i].visited:=true; {记下已访问标记}
push(q,i); {进队列}
while not empty(q) do {开始广度遍历}
begin
adj:=pop(q); {取顶点}
p:=vex[adj].link; {取边表指针}
while p<>nil do
begin
if not vex[p^.adj].visited then
begin
write(vex[p^.adj].data);
vex[p^.adj].visited:=true;
push(q,p^.adj); {p^.adj进入队列q}
end;
p:=p^.next; {从边表中取下一个邻接边}
end;
end;
end;

procedure travel;
begin
for i:=1 to n do vex[i].visited:=false;
for i:=1 to n do if vex[i].visited=false then bfs(i);