- 程序一:
- function [Wt,Pp]=tulunmintree(n,W)
- %图论中最小生成树Kruskal算法 及画图程序 M-函数
- %格式 [Wt,Pp]=tulunmintree(n,W):n为图顶点数,W为图的带权邻接矩
- % 阵,不构成边的两顶点之间的权用inf表示。显示最小生成树的边及
- % 顶点, Wt为最小生成树的权,Pp(:,1:2)为最小生成树边的两顶点,
- % Pp(:,3)为最小生成树的边权,Pp(:,4)为最小生成树边的序号;
- %附图,红色连线为最小生成树的图;
- %例如
- % 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]=mintreek(n,w)
- 程序二:
- function [out,len]=tulunmintree2(map)
- %求最小生成树算法,通过kruskal算法求最优树,并给出相应图像.
- %用法:
- % 首先输入矩阵:
- % map=[起点1 终点1 边长1;起点2 终点2 边长2;............;起点n 终点n 边长n]
- % 再用[out,len]=kruskal(map)求最优树
- %参数说明
- % map----3列邻接矩阵,每行表示一条边.第一列表示起点,第二列表示终点,第三列表示边长
- % out---输出边阵:[起点 终点]
- % len---输出最优树的总长度
- %
- %例如
- % clear;map=[1 2 30;2 4 5;2 5 50;3 2 6;4 3 1;1 4 20;1 5 30]
- % [out,len]=kruskal(map)
- %
- %本算法调用由VC++6.0程序crusal1.c生成的MEX文件kruskal1.dll求得最小生成树,
- % 表示无穷大的数值上界(默认10000)
附件下载:图论三个不同的最小生成树Kruskal算法及画图程序


雷达卡





京公网安备 11010802022788号







