数学建模社区-数学中国
标题:
我是新手 请高手指点
[打印本页]
作者:
冰域逐梦
时间:
2012-8-19 16:15
标题:
我是新手 请高手指点
求生成树的广度搜索代码 死循环
请高手帮忙 谢谢
function x=bfs(A,b)
2 q9 l4 n; J6 w, p w
v=zeros(1,size(A,1)); % v(i)记录是否访问过第i个点
! z {( x: ?1 o0 L0 J
x=zeros(1,size(A,1)); % x存放生成树
2 p# F/ K! q( ~- O
s=b; % s代表当前正在访问第s个点
9 P0 m) U2 M: k) t: x0 n+ G) J/ [
x(b)=1; %从第一个点开始访问
6 m ]' N! s( }+ g; z, X4 N. r; T9 ]
v(s)=1;
6 w2 T1 a3 w) m$ C6 O
while sum(v)<length(v) %当向量v中所有变量为1时,算法结束
9 H9 Z5 E% r3 i* ]- \( T
t=find(A(s,:)==1); %t存放与s相连的点
% n m8 G0 a4 w) B3 D, }: K6 J
if isempty(t) %若当前访问点是孤立的,算法结束
; ]0 l& @; u2 p) V, b
disp('生成树不存在');
! ?3 x! K$ K y* }1 L$ l% R1 F
break;
9 i: c& e; b: m+ n2 t- K8 U
else
0 }( G3 t' x. F* g @
for i=1:length(t)
# s/ O6 H# W9 y# ]
if v(t(i))==0
; F! b' R" R0 E2 V" \
v(t(i))=1;
; z1 L/ r' c& `% \* @. u
s=t(i);
% u* {& @7 Y+ c
x(s)=sum(v);
& `3 y, T. M7 i9 _9 f, J, C }: T
end
s9 K% Z4 ~! p$ n. f) ~
end
8 G# ~: r/ ]1 Q5 R# {: @: h
end
) `) R# V5 {& c; [5 |
end
复制代码
作者:
冰域逐梦
时间:
2012-8-19 16:16
笑脸那一行应该是 t=find(A(s,
==1); %t存放与s相连的点
作者:
冰域逐梦
时间:
2012-8-19 16:17
笑脸改成 冒号 右括号
作者:
darker50
时间:
2012-8-19 17:19
把代码的选中之后选择编辑器上面的这个符号“<>”就不会有表情出现了!!
作者:
冰域逐梦
时间:
2012-8-19 18:15
darker50 发表于 2012-8-19 17:19
; I* D$ S" m4 L2 o
把代码的选中之后选择编辑器上面的这个符号“”就不会有表情出现了!!
( v' N s; A2 M$ i: m
谢谢 那个 。。。。 我的问题你能解决吗
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5