数学建模社区-数学中国
标题:
我是新手 请高手指点
[打印本页]
作者:
冰域逐梦
时间:
2012-8-19 16:15
标题:
我是新手 请高手指点
求生成树的广度搜索代码 死循环
请高手帮忙 谢谢
function x=bfs(A,b)
; n6 M/ j2 r- w& Z4 c2 ~% C
v=zeros(1,size(A,1)); % v(i)记录是否访问过第i个点
7 ?) E# g& c9 ]* b5 c4 T
x=zeros(1,size(A,1)); % x存放生成树
$ h" A' s2 S5 C ^- c& G) \
s=b; % s代表当前正在访问第s个点
% t$ c. \/ V7 `
x(b)=1; %从第一个点开始访问
, s6 N Q* H* Q4 x; X5 L
v(s)=1;
+ I5 k; l/ D# [3 U$ _9 D) C
while sum(v)<length(v) %当向量v中所有变量为1时,算法结束
& C$ Q9 u. u" D6 I6 R8 z
t=find(A(s,:)==1); %t存放与s相连的点
! k2 u8 l3 Z& M7 \& h' i
if isempty(t) %若当前访问点是孤立的,算法结束
# N3 B, t, u. V$ {3 E
disp('生成树不存在');
& }: P2 d* f z5 U, P
break;
% `6 H+ P1 T' s7 g, a, M( v
else
3 U$ D' d1 {/ M" B; G+ o1 @
for i=1:length(t)
1 g. b D' a: _5 l& i" ?
if v(t(i))==0
8 p& Q; q( }4 `1 L7 @, w
v(t(i))=1;
7 e" ~& q9 a; w
s=t(i);
/ a8 q' Y& ?& T
x(s)=sum(v);
2 \3 u& X5 c* ~4 Y
end
7 O' W- N) G8 S
end
8 }$ }) @+ c, a9 t ~
end
0 e" L3 C+ y) s- ~
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
, W, B+ V" o5 g( z7 r# A _+ z
把代码的选中之后选择编辑器上面的这个符号“”就不会有表情出现了!!
! `9 v3 f% h* z
谢谢 那个 。。。。 我的问题你能解决吗
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5