- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                实验报告
一、	实验目的:
掌握图论算法的设计与实现
二、	实验内容:
用便宜算法求解旅行商问题
实验环境
实验环境
VC++
四、实验过程与结果:
1、	便宜算法与旅行商问题简介:
①、旅行商问题简介:
在哈密顿回路中(每条边都有它的权)挑选一条总长最短(或总花费最省,旅途时间最少)的
一条哈密顿回路
②、便宜算法描述:
A、 置点的集合S={2, 3,、、、n}, w(	V序列
T= (1, 1), w(i,k)=w(i,l)3eSo
B、	在 S 中,令 w(j4)=min w(i,k) iWS,kWT
对回路T中的边,(t,t2),
若 w(j ,tl)-w(t ,tl)=w(j ,t2)-w(t ,t2),
则j插入到T的t, 11之间,否则j插入到T的t, t2之间,
SGSGj,若S=0,结束。否则转C。
C、	对全部 iwS, fi w( i ,k) -min(w( i ,k), w( i, j)), 转到Bo
2、	算法框图:
3、数据结构:
ADT List{
数据对象:D= (ai |aiwElemSet,i=l,2,、、、,n,n=0)
数据关系:Rl={ai-l,ai|ai-l,ai^D, i=l,2, , n}
}
4、运彳丁结果:
*D:Microsoft Visual Studio\lyProjects\travelproble has pass\Debug\n...
3 3 2 5 4 5
2 4 14 3 2
:4??离离离离离离 rnlrTTI-n 一-n 一一 n =n 一-n =n 一 数数
香个个个个个个 城个一一一 一一一 JA一JAJAJAJAJAJA 青沟主冃主星星星星后 ▼ nk -Tk V Tk V Tk  Tk V Tk  Tk
璽鑼鬆严将数组埴满
0
23
43
45
23
0
12
34
43
12
0
25
45
34
25
0
打印城市路线:12341 盯印城市距离:105Press any key to continue
3、	分析与总结:
本程序主要用循环链表实现,路线的矩阵数据存储在二维数组中,然后将找到的最短路线所对应得城
市放在循环链表中,程序中总共定义了两个-样的数组,-个用于操作(将用过的路线全部置为0)
一个用于调用其中的路程距离用于最后的总路程的计算,最后输出最短路线中的城市和总路程长度。
此程序共用了 5个多小时,因为之前老师讲解得比较清楚,所以程序编起来思路比较清楚,主要就是
把算法实现,及调试程序,没有遇到太麻烦的问题。
五、源程序:
#include niostream.hH
#include ”stdlib.h”
#include uiomanip.hn
typedef struct LNode{
int data;
struct LNode *next;
} LNode,*LinkList;
void Creatroute(int Citynum,int Route[100][100])〃创建路线 { for(int j=O;jCitynum;j++)
{ for(int i=0;ij;i++)
{ cout?n请输入一个城市距离:”; cin?Route[i][j];
Route[i][j]=0;
cout?endl;
cout?输入完毕,下面将数组填满”; for(j=0;jCitynum;j++) { for(int i=O;iCitynum;i++)
{ Route[i][j]=Route|j][i];}
}
cout?endl;
cout?n全部设定好M?endl;
for( j=O;jCitynum;j++)
{ for( int i=O;iCitynum;i ++)
{ cout?setw(5)?Route[i][j]; cout?endl;
}
}
}
void Copy(int Route[100][ 100],int RRoute[ 100][ 100],int Citynum)
{ for(int i二0;ivCitynum;i++)
{ for(int j=O;jCitynum;j++)
{ RRoute[i]U]=Route[i][j];}
}
}
void VisitList(LinkList L)〃遍历
{ LNode *p;
p=L ? next;
while(p-next!=L-next) {
cout?p-data; p=p-next;} cout?p-data; cout?endl;
}
void creast(LinkList Lc)〃创建一个空的循环链表
{	Lc=new LNode;
Lc?nex匸NULL; }
LNode* findlast(LinkList L)〃找出最后一个结点
{ 
                您可能关注的文档
最近下载
- 第一单元+写话:注意说话的语气(教学课件)-2023-2024学年二年级语文下册单元写话能力提升(统编版).pptx VIP
 - 心理健康与心理健康观.ppt VIP
 - 关爱保护未成年人.pptx VIP
 - 实践党创新理论“三个境界”.doc VIP
 - 企业危险化学品及危险化工工艺安全管理规定.docx VIP
 - 数电模电完整版练习试题附答案.doc
 - 企业设备、建(构)筑物拆除活动污染防治技术指南.pdf VIP
 - 2020 电工装备供应商数据采集及接口规范第1部分通用部分.docx VIP
 - 《画出你的想象》教学设计4-10画出你的想象-二年级上册美术.docx VIP
 - 心理卫生 mental health.ppt VIP
 
原创力文档
                        

文档评论(0)