最小生成树matlab程序_第1页
最小生成树matlab程序_第2页
最小生成树matlab程序_第3页
最小生成树matlab程序_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、function Wt,Pp=mintree(n,W)%求最小生成树,n为顶点个数,W是权值邻接矩阵,不相邻的用inf表示%Wt是最小生成树的权,Pp(:,1:2)表示最小生成树的两顶点%Pp(:,4)表示最小生成树的序号tmpa=find(W=inf);tmpb,tmpc=find(W=inf);w=W(tmpa);e=tmpb,tmpc;wa,wb=sort(w);E=e(wb,:),wa,wb;nE,mE=size(E);temp=find(E(:,1)-E(:,2);E=E(temp,:);P=E(1,:);k=length(E(:,1);while rank(E)0 temp1=ma

2、x(E(1,2),E(1,1); temp2=min(E(1,2),E(1,1); for i=1:k if E(i,1)=temp1 E(i,1)=temp2; end if E(i,2)=temp1 E(i,2)=temp2; end end a=find(E(:,1)-E(:,2); E=E(a,:); if rank(E)0 P=P;E(1,:); k=length(E(:,1); endendWt=sum(P(:,3);Pp=e(P(:,4),:),P(:,3:4);for i=1:length(P(:,3) disp(,e,num2str(P(i,4),. (v,num2str(P

3、(i,1),v,num2str(P(i,2),);endaxis equal;%画最小生成树 hold onx,y=cylinder(1,n);xm=min(x(1,:);ym=min(y(1,:);xx=max(x(1,:);yy=max(y(1,:);axis(xm-abs(xm)*0.15,xx+abs(xx)*0.15,ym-abs(ym)*0.15,yy+abs(yy)*0.15);plot(x(1,:),y(1,:),ko);for i=1:n temp=v,int2str(i); text(x(1,i),y(1,i),temp);endfor i=1:nE plot(x(1,e(

4、i,:),y(1,e(i,:),b);endfor i=1:length(P(:,4) plot(x(1,Pp(i,1:2),y(1,Pp(i,1:2),r);endtext(-0.35,-1.2,最小生成树的权为,num2str(Wt);title(红色连线为最小生成树);axis off;hold off;调用此程序要先编写主程序。例:n=6;W=inf*ones(6);W(1,2,3,4)=6,1,5;W(2,3,5)=5,3;W(3,4,5,6)=5,6,4;W(4,6)=2;W(5,6)=6;a,b=mintree(n,W)命名为example在窗口中运行此程序得:e2(v1v3)e9(v4v6)e6(v2v5)e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论