数据结构课程设计基于y算法医院选址的实现.docx

数据结构课程设计基于y算法医院选址的实现.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计基于y算法医院选址的实现

课程设计任务书学生姓名: 专业班级: 软件工程1101指导教师: 工作单位:计算机科学与技术学院 题 目: 基于Floyd算法医院选址的实现初始条件:理论:学习了《数据结构》课程,掌握了基本的数据结构和常用的算法;实践:软件工程系实验室提供计算机及软件开发环境。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、系统应具备的功能:(1)以邻接表为存储结构,建立n个结点的无向图(2)用Floyd算法实现医院选址(3)演示结果2、数据结构设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,包括:(1)设计题目;(2)摘要和关键字(中文和英文);(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、设计体会等;(4)结束语;(5)参考文献。时间安排: 2013年元月21日-25日 (第21周) 元月21日 查阅资料元月22日 系统设计,数据结构设计,算法设计元月23日-24日 编程并上机调试,验收程序元月25日 撰写报告、提交报告指导教师签名: 2013年元月21日系主任(或责任教师)签名: 2013年元月21日程序代码如下:#include iostreamusing namespace std;int INFTY=32767;//整型数据的范围是-23768~32767,此处用32767表示无穷templateclass T //“T”为模板形参class Graph //基类{ public: virtual void Insert(int u,int v,T w)=0; virtual void Remove(int u,int v)=0; virtual bool Exist(int u,int v)=0; virtual int Vertices()const {return n;} protected: int n,e; //n表示村庄的个数,e表示无向图的边数};template class Tclass MGraph:public GraphT//邻接矩阵存储图{ public: MGraph(); //构造函数,建立无向图 ~MGraph(); //析构函数,释放运行工程中的开辟的空间 void Build_Graph(); //构建无向图 void Insert(int u,int v,T w); /*假如村庄节点的函数,包括权值,和相邻村庄编号*/ void Remove(int u,int v); /*当两个村庄之间不能直接连通时,u,v两个村庄之间的权值就是无穷*/ bool Exist(int u,int v); /*判断是否存在u,v两个村庄,存在返回true,否则返回false*/ void Floyd(T**d,int**path); //建立Floyd函数,实现医院选址 int num; protected: T**a;//二维数组,表示两个村庄之间的权值 T noEdge;};template class Tvoid MGraphT::Build_Graph()//建图{ cout请输入顶点的个数:endl; int C_num; cinC_num; num=n=C_num;e=0;noEdge=INFTY; a=new T*[n]; for(int k=0;kn;k++){ a[k]=new T [n]; //开辟n个T类型大小的空间 for(int j=0;jn;j++)a[k][j]=noEdge; a[k][k]=0; } cout建立村庄编号为1--C_num的图endl; for(int i=0;i!=C_num;i++) for(int j=i+1;j!=C_num;j++) { int w; cout请输入村庄i+1与村庄j+1之间的权值:; cinw; Insert(i,j,w); //向图中添加权值为W的边 couti---j:a[i][j]endl; } cout*********************************************************************endl; cout已建立村庄编号为1--C_num的图:endl; cout**********************************endl; cout \t\t; for(int b=1;b=C_num;b++)//输出邻接矩阵{ coutb\t; } coutendl;}template class TMGraphT::MGraph(){ Build_Graph();}template class TMGraphT::~MGraph(){ for(int

文档评论(0)

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

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

1亿VIP精品文档

相关文档