資源簡介
某推銷員要從城市v1出發,訪問其它城市v2,v3,…,v6各一次且僅一次,最后返回v1。D為各城市間的距離矩陣。
問:該推銷員應如何選擇路線,才能使總的行程最短?
代碼片段和文件信息
//
//??main.cpp
//??DP_TSP_recur
//
//??Created?by?yunglynn?on?12-11-23.
//??Copyright?(c)?2012年?yunglynn.?All?rights?reserved.
//
#include?
using?namespace?std;
#define?MAX?6
typedef?struct?_node_st
{
????bool?inPath;
????int?nextIndex;
????_node_st():inPath(false)nextIndex(-1){};
}Node*NodePtr;
void?printPath(Node*?node);
int?tsp(int?beginIndexint?endIndex);
int?dis[MAX][MAX]={
????0?10?20?30?40?50
????12?0?18?30?25?21
????23?19?0?5?10?15
????34?32?4?0?8?16
????45?27?11?10?0?18
????56?22?16?20?12?0
};
Node?p[MAX];
Node?record[MAX?-?1][MAX];
int?flag?=?0;
int?main()
{
????p[0].inPath?=?true;
????int?res?=?tsp(0?0);
????printPath(record[flag]);
????cout?<????return?0;
}
//表示從begin開始經過所有點后到達end的最小距離
int?tsp(int?beginIndexint?endIndex)
{
????int?result?=?0xFFFFFFF;
????bool?isLast?=?true;
????int?k?=?0;
????for(int?i?=?0;?i?????{
????????if(i?!=?beginIndex)
????????{
????????????if(!p[i].inPath)
????????????{
??????????
- 上一篇:記賬軟件源代碼——自己編的C++實現
- 下一篇:vc6.0編寫的SOM神經網絡聚類
評論
共有 條評論