数据结构之最小生成树
来源:互联网 发布:淘宝店铺搬迁 编辑:程序博客网 时间:2024/05/16 07:07
若要在n个城市之间建设通信网络,只需要架设n-1条线路即可。如何以最低的经济待价建设这个通信网,是一个网的最小生成树问题。
#include<stdio.h> struct Edge{char v1;char v2;int length;};struct Headtype{Edge space[20];int Elength;};struct Dgree{char v;int flag;};struct Mark{Dgree biao[20];int Glength;};void InitMark(Mark &M,int x){int j;M.Glength=x;printf("Please input these nodes:\n");for(j=1;j<=x;j++){scanf("%s",&M.biao[j].v);M.biao[j].flag=-1;}}void InitHeadType(Headtype &H,int y){int k;H.Elength=y;for(k=1;k<=y;k++){printf("Please input relation between nodes and edges:\n"); scanf("%s%s%d",&H.space[k].v1,&H.space[k].v2,&H.space[k].length); printf("%c->%c:%d\n",H.space[k].v1,H.space[k].v2,H.space[k].length);} } void HeadAdjust(Headtype &H,int s,int m){Edge rc;int p;rc=H.space[s];for(p=2*s;p<=m;p*=2){if(p<m&&(H.space[p].length<H.space[p+1].length))++p;if(rc.length>H.space[p].length)break;H.space[s]=H.space[p];s=p;}H.space[s]=rc;}void HeadSort(Headtype &H){int q;Edge rb;for(q=H.Elength/2;q>0;--q)HeadAdjust(H,q,H.Elength);for(q=H.Elength;q>1;--q){rb=H.space[1];H.space[1]=H.space[q];H.space[q]=rb;HeadAdjust(H,1,q-1);}}void main() { int Gnumber,Enumber,a,b,c; printf("Please input nodes' number:\n"); scanf("%d",&Gnumber); Enumber=Gnumber*(Gnumber-1)/2;Headtype H; Mark M; Dgree e1,e2; InitMark(M,Gnumber); InitHeadType(H,Enumber); HeadSort(H); printf("The mintree is;\n"); for(a=1;a<=Enumber;a++) { for(b=1;b<=Gnumber;b++){if(M.biao[b].v==H.space[a].v1) {e1=M.biao[b]; break; }} for(c=1;c<=Gnumber;c++){ if(M.biao[c].v==H.space[a].v2) {e2=M.biao[c]; break; } } while(e1.flag!=-1){b=e1.flag; e1=M.biao[e1.flag];} while(e2.flag!=-1){c=e2.flag; e2=M.biao[e2.flag]; } if(e2.v!=e1.v){ M.biao[b].flag=c; printf("(%c,%c):%d\n",H.space[a].v1,H.space[a].v2,H.space[a].length); }} }
- 数据结构之最小生成树
- 数据结构之 最小生成树
- 数据结构之最小生成树
- 数据结构之最小生成树
- 数据结构之最小生成树
- 数据结构之最小生成树
- 数据结构之最小生成树
- C++数据结构之最小生成树
- 数据结构之 图的最小生成树
- 白话数据结构之【最小生成树】
- 数据结构之最小生成树prim算法
- 数据结构之最小生成树 Kruskal算法
- 数据结构之(prim)最小生成树
- 《数据结构和算法》之最小生成树
- 数据结构实验之图论九:最小生成树
- 数据结构实验之图论九:最小生成树
- 数据结构实验之图论九:最小生成树
- 数据结构实验之图论九:最小生成树
- ubuntu
- 《现代操作系统》读书笔记之——进程间通信3
- Eclipse3.7默认字体修改-帮你找回Courser-New字体
- QT键盘操作函数摘要:
- Oracle 数据字典
- 数据结构之最小生成树
- 解析SQL语句的过程
- RMAN实例入门,备份与恢复
- 为程序员量身定制的12个目标
- Quartz.NET的管理工具
- ubuntu 8.04安装python django apache
- Java学习笔记8 关于策略模式
- 在对话框中设置背景的三种方法
- 单一职责原则(SRP)