数学建模社区-数学中国
标题:
我是新手 请高手指点
[打印本页]
作者:
冰域逐梦
时间:
2012-8-19 16:15
标题:
我是新手 请高手指点
求生成树的广度搜索代码 死循环
请高手帮忙 谢谢
function x=bfs(A,b)
" z2 k* M7 u9 Q
v=zeros(1,size(A,1)); % v(i)记录是否访问过第i个点
/ |% O% O/ Z6 L, I, o
x=zeros(1,size(A,1)); % x存放生成树
6 F9 @. t4 K5 H: ^ {4 M, h: N; G; i
s=b; % s代表当前正在访问第s个点
6 r* c$ q* p! f4 j8 [6 b/ n
x(b)=1; %从第一个点开始访问
y0 U0 V5 D" _) v: P" A
v(s)=1;
/ d' Q7 U5 Q4 F* v" U
while sum(v)<length(v) %当向量v中所有变量为1时,算法结束
# T8 L1 P) j& Q) O' c' u
t=find(A(s,:)==1); %t存放与s相连的点
; u* \0 K1 m5 _& O
if isempty(t) %若当前访问点是孤立的,算法结束
: i' I2 K2 o9 A3 h( N* _3 T) ^7 x
disp('生成树不存在');
6 k, [# W' |+ ^* l% D
break;
% u2 ]# F8 k! o" s3 h
else
+ s9 ]7 L* A9 R; P `6 ]5 a/ i4 u% ^
for i=1:length(t)
) d5 X" j' q$ e# ~' G1 f; ]
if v(t(i))==0
' d( G6 i* v3 p+ T' l
v(t(i))=1;
5 g! V/ {# Y" K% N4 r
s=t(i);
" Q0 E2 Z: R/ H( ~7 R4 w
x(s)=sum(v);
( V3 B1 _0 P; \8 H3 I( B
end
# P% O- i Z. G0 g! Q
end
# z5 [. i. \0 y, k' Z
end
, `( @: i$ m M! Y1 K
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
& P% B! g6 [; x8 F! h
把代码的选中之后选择编辑器上面的这个符号“”就不会有表情出现了!!
* t; \1 X/ D! d- p3 A, k2 X3 H
谢谢 那个 。。。。 我的问题你能解决吗
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5