最小生成树的方法完成室内布线问题解析.doc

最小生成树的方法完成室内布线问题解析.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最小生成树的方法完成室内布线问题解析

《算法与数据结构》课程设计报告书 ? 最小生成树:室内布线 专 业:计算机科学与技术 成 绩: 烟台大学计算机与控制工程学院 四、#includeiostream #includemath.h using namespace std; typedef struct //存放节点数据 { float x; float y; float h; }outlet; typedef struct { int no;//存放节点编号 int info;//存放节点所处墙面 }VertexType; typedef struct { float edges[20][20];//存放邻接矩阵数据 int n,e; VertexType vexs[20];//节点变量 }MGraph; int Dplace(outlet d[4])//根据门四角坐标求门的位置 { if(d[1].x==d[2].xd[1].x==d[3].xd[1].x==d[4].x)//若门四角的横坐标相同 { if(d[1].x==0)//横坐标为0,则门在1号墙壁上 return 1; else return 3;//否则在三号墙壁上 } if(d[1].y==d[2].yd[1].y==d[3].yd[1].y==d[4].y)//若门四角纵坐标相同 { if(d[1].y==0) return 2; else return 4; } } int Oplace(outlet Olet,float a,float b)//插座的位置 { if(Olet.x==0Olet.y=0Olet.h=0) return 1; if(Olet.y==0Olet.x 0Olet.h0) return 2; if(Olet.x==aOlet.y=0Olet.h=0) return 3; if(Olet.y==bOlet.x =0Olet.h=0) return 4; } int Xplace(int a,int b)//判断两插座的相对位置 { if(a==b)//如果两插座在同一面墙上,返回0 return 0; if(a==1(b==2||b==4)||a==2(b==1||b==3)||a==3(b==2||b==4)||a==4(b==3||b==1))//如果两插座在相邻面墙上,返回1 return 1; else return 2; } float CC(outlet Olet1,outlet Olet2,outlet door[4],int a)//有门存在时两插座之间的距离 { float n; if(a==1||a==3)//当门在第1或3面墙上时 { if(Olet1.h=door[2].hOlet2.h=door[2].h(Olet1.y=door[2].ydoor[3].y=Olet2.y)||(Olet2.y=door[2].ydoor[3].y=Olet1.y)) //若果门处在两插座连线上 { n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+(door[2].h-Olet1.h)+(door[2].h-Olet2.h); return n; } else//如果门不影响两插座的链接 { n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+fabs(Olet1.h-Olet2.h); return n; } } if(a==2||a==4)//如果门在第2 4 面墙上 { if(Olet1.h=door[2].hOlet2.h=door[2].h(Olet1.x=door[2].xdoor[3].x=Olet2.x||Olet2.x=door[2].xdoor[3].x=Olet1.x)) //若果门处在两插座连线上 { n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+(door[2].h-Olet1.h)+(door[2].h-Olet2.h); return n; } else//如果门在第2 4 面墙上 { n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+fabs(Olet1.h-Olet2.h); return n; } } } typedef struct

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档