设计进度安排
1、分析居民区光纤网络的数据属性,并依据光纤铺设的功能要求,确定算法设计方案;
2、完成网络光纤铺设的数据结构设计工作,包括图文件的结构与存储结构、最小生成树的存储结构、图形的显示结构等;
3、完成功能设计工作,包括随机生成代价文件、读图文件、计算最小生成树、显示最小生成树等;
4、使用C或C++程序设计语言编写实现算法程序;
5、完成大作业报告。
设计内容
认真参阅课程相关参考资料、数据,了解铺设网络光纤的原理要求,设计一个实现居民小区之间网络光纤铺设的最佳方案选择的算法,具体内容如下:
需要在某个城市n个居民小区之间铺设网络光纤,假设任意两个居民小区之间均需要铺设光纤,则在这n个居民小区之间只需要铺设n-1条光纤即可形成一个网络,但由于地理环境不同,所需要的代价也不尽相同。本课程设计要求事先随机生成任意居民小区之间铺设网络光纤的代价,并将代价存入文件,然后设计一个最佳方案进行光纤铺设,使得既能连通所有小区之间的网络,又能使网络光纤铺设的代价最小,最终以图形形式输出所设计的最佳方案。
需求分析
1.光纤网络设计
在某个城市n个居民小区之间铺设网络光纤,设计一个最佳方案进行光纤铺设,使得既能连通所有小区之间的网络,又能使网络光纤铺设的代价最小。
2.功能要求
输入居民区的个数,光纤的条数,光纤的单价,以及各个居民区之间的距离,运用克鲁斯卡尔算法,输出系统最优的铺设方案。
代码具体
#include
#include
using namespace std;
int main()
{
cout<>neighborhoodNum;
cout<>opticalNum;
cout<>price;
cout<>neighborhood1>>neighborhood2>>distance;
neighborhoodArrary[neighborhood1][neighborhood2]=distance;
neighborhoodArrary[neighborhood2][neighborhood1]=distance;
j++;
}
int short_way[100];
int near_neighborhood[100];
int min_way;
int temp_neighborhood;
for(i=1; i>choice;
if(choice=='T' )
{
system("cls") ; //清空屏幕, 重新开始
}
if(choice=='F' )
{
cout<
代码运行结果:
总结:
运用最小生成树,点表示居民区,路径表示光纤线路,运用克鲁斯卡尔算法,使既能连通所有小区之间的网络,又能使网络光纤铺设的代价最小。考虑iostream库输入输出流便捷,采用C++代码。思考设计过程中遇到算法选择的困难,最后考虑时间复杂度和空间复杂度选择克鲁斯卡尔算法。
Original: https://www.cnblogs.com/Salinger/p/16456191.html
Author: Lincee
Title: 数据结构——光纤网络设计
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574006/
转载文章受原作者版权保护。转载请注明原作者出处!