《数据结构课程设计》报告。
题目通讯线路的敷设问题
专业计算机科学与技术。
班级1班。学生沈美珠。
同组人员徐颖高鹏黄浪利锐昌。
题目:通信线路的敷设问题。
题目内容:若要在下图中的13个城市之间建设通信网络,只需要敷设12条线路即可,边上的数字为两个城市之间建设线路的花费,单位:拾万元。
如何以最低的经济代价建设这个通信网,是一个网的最小生成树的问题。
要求: 以邻接矩阵方式保存图的数据,并以邻接链表的形式输出图的数据;
以边表方式保存图的数据,并以邻接矩阵方式的形式输出图的数据;
用prim算法求网的最小生成树,并以邻接链表的形式显示所求得的最小生成树,然后计算敷设相应的通信网的总造价;
用kruskal算法求网的最小生成树,并以邻接链表的形式显示所求得的最小生成树,然后计算敷设相应的通信网的总造价;
整个应用设计成一个菜单,具有上述功能要求和退出系统的基本的功能;
本人完成的工作:
第四个问题。
完成的工作的内容:
用prim算法求网的最小生成树,并以邻接链表的形式显示所求得的最小生成树,然后计算敷设相应的通信网的总造价;
所采用的数据结构。
数据结构的定义。
typedef struct mstedge
int vex1,vex2;//边所依附的两个顶点。
weightype weight;//边的权值。
mstedge;//prime算法中每条边的存储结构。
typedef struct
int adjvex;//边所依附u中的顶点。
int lowcost;//该边的权值。
closedge;//存放v-u中顶点到u中顶点权值最小的边。
所设计的函数(小3号黑体)
mstedge *prim_mst(mgraph *p,int u)//从第u个顶点开始构造的图a的最小生成树。
mstedge *te;//指向最小生成树的边。
closedge closedge[max_edge];/存放v-u中顶点到u中顶点权值最小的边。
int j,k,v,min,f=0;
for(j=0;j<13;j++)
//初始化数组closedge[n]
closedge[u].lowcost=0;//初始时置u=
te=(mstedge *)malloc(12*sizeof(mstedge));
for(j=0;j<12;j++)
te[j].vex1=closedge[k].adjvex;
te[j].vex2=k;
te[j].weight=closedge[k].lowcost;
printf("(d,%d)",p->vexlist[te[j].vex1],p->vexlist[te[j].vex2]);
f=f+te[j].weight;
closedge[k].lowcost=0;//将顶点k并入u中。
for(v=0;v<13;v++)
if(p->arcs[v][k]closedge[v].lowcost=p->arcs[v][k];
closedge[v].adjvex=k;
修改数组closedge[n]得各个元素的值。
printf("敷设相应的通信网的总造价为:")
printf("%d",f);
return(te);
//求最小生成树的prime算法。
对每个函数必须给出所采用的算法思想和程序框图;(小4号宋体)
算法思想。 若从顶点v0出发构造,u=,te={}
先找权值最小的边(u,v),其中u∈u且v∈v-u,并且子图不构成环,则u= u∪,te=te∪ ;
重复⑵ ,直到u=v为止。则te中必有n-1条边, t=(u,te)就是最小生成树。
程序框图: 每个题目都必须有运行时的输入数据(随机产生的数据要求输出显示),运行的输出结果。
每个函数中应给出尽可能详细的中文注释。
见函数**。
问题与总结。
prime算法求最小生成树,通过课件,网上搜索查资料,最后终于把程序成功地运行出来了。课程设计给了我们锻炼自己思维能力和动手操作能力的平台,通过课程设计,对数据结构这门课有了更进一步的理解与体会。设计的过程是痛并快乐着。
烦躁过,痛苦过之后收获的是快乐与欣喜。课程设计不仅教会我们怎么去学习数据结构,更教会我们怎样去做人,怎样互助,怎样去沟通,怎样培养一种团体合作精神。我们不仅要为自己负责,更要为团队负责。
对于我来说,数据结构确实是一门很难的学科,面对着眼前的重重困难,我的团队给了我力量,让我勇往直前,感谢我的团队!
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...