求助关于求图割点的代码,哪里错了?怎么改正啊?
function = ncutf(g)%求割点的算法 g为邻接矩阵 nc为割点的集合
n=size(g,1);
if n>=3
a=sum(g);
b=sum(a==2);
if b==n
fprintf('本图为圈,无割点。n')
nc=0;
end
else
=dfs3(g);
%nc=[];
nc=isncf(w,k);
n=size(g,1);
for i=1:n
for j=1:n
if w(i,j)>1
if k(i)>k(j)
g(i,j)=2;
else
g(i,j)=3;
end
end
end
end
for i=1:n
f1=find(g(i,:)==2);
f2=find(g(i,:)==3);
f=union(f1,f2);
l(i)=min();
end
for i=1:n
for j=1:n
if g(i,j)==3 & k(i)>1&l(j)>=k(i)
nc=union(i,nc);
end
end
end
end
end
function nc=isncf(w,k)
nc=[];
t=zeros(size(w));
n=size(w,1);
a=find(w~=0);
for i=1:length(a)
d(i)=w(a(i));
if a(i)/n>floor(a(i)/n)
t(i)=floor(a(i)/n)+1;
else
t(i)=floor(a(i)/n);
end
t1(i)=mod(a(i),n);
if t1(i)==0
t1(i)=n;
end
end
=sort(d);
p=;pc=0;
for i=1:length(a)
if k(t1(c(i)))<k(t(c(i)))
p=union(p,t(c(i)));
t(t1(c(i)),t(c(i)))=3;
end
if pc==0
tc=isempty(setdiff(,p));
if tc
t0=sum(t(1,:)==3);
if t0>=2
nc=union(nc,1);
end
break;
end
end
end
end 如果没法改正,另外编一个求割点的代码也行阿
页:
[1]