91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 31.35 KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2024-08-26
  • 語言: C/C++
  • 標(biāo)簽: c語言??貨郎擔(dān)??

資源簡介

c語言編寫的貨郎擔(dān)算法,可以運(yùn)行,大家參考參考

資源截圖

代碼片段和文件信息


/*文件名:ExamSalesMan.cpp??主工程文件*/
/*
#include?“EnumSalesMan.h“
#include?“TrackBackSalesMan.h“
#include?“BoundSalesMan.h“
int?_tmain(int?argc?_TCHAR*?argv[])

{
?????DySalesMan?sm;
?????sm.PrintMatrix();
?????sm.Travel();
?????EnumSalesMan?sm2;
?????sm2.Travel();
?????TrackBackSalesMan?sm3;
?????sm3.Travel();
?????BoundSalesMan?sm4;
?????sm4.Travel();
?????return?0;
}
/*?文件名:SalesMan。H??貨郎擔(dān)基類頭文件??*/

#pragma?once
#include?
#include?
using?namespace?std;
class?SalesMan
{
protected:
?????enum{MAXNUM=999};?//最大值設(shè)為無窮大

?????vector?>??matrix;?//對(duì)應(yīng)的鄰接矩陣
?????vector?path;?//記錄走過的最小成本路徑

?????int?minValue;//最小路徑長度

public:
?????SalesMan();
?????virtual?~SalesMan(){matrix.clear();path.clear();}

?????void?PrintMatrix();?//打印矩陣值

?????void?PrintPath();??//打印路徑?

?????virtual?void?Travel(){};?//主要尋找路徑的函數(shù),將在子類里面實(shí)現(xiàn)
};
/*?文件名:SalesMan。Cpp?貨郎擔(dān)基類源文件??*/

//#include?“StdAfx.h“
///#include?“SalesMan.h“
SalesMan::SalesMan()?//構(gòu)造函數(shù),從文件中讀取數(shù)值,生成圖的鄰接矩陣,

{//認(rèn)為矩陣結(jié)點(diǎn)從0開始
?????fstream?fin(“in.txt“);
?????if?(!fin)
?????{????
?????????cerr<<“file?open?failed!“<
?????????return;
?????}
?????int?n;
?????fin>>n;
?????path.resize(n-1);?//路徑記錄中間的那些結(jié)點(diǎn)
?????//從文件里取值
?????for?(int?i=0;i?????{
?????????vector?col;???????

?????????for?(int?j=0;j?????????{
??????????????int?num;

??????????????fin>>num;
??????????????col.push_back(num);
?????????}????????????
?????????matrix.push_back(col);
?????}
?????fin.close();
}
void?SalesMan::PrintPath()
{
?????cout<<0<<“\t“;
?????for?(unsigned?int?i=0;i
?????????cout<?????cout<<“0“<}
void?SalesMan::PrintMatrix()
{
?????int?n=(int)matrix.size();
?????for?(int?i=0;i?????{
?????????for?(int?j=0;j??????????????cout<
?????????cout<?????}
}
?
/*?文件名:EnumSalesMan.h??枚舉法??*/

#pragma?once
#include?“salesman.h“
class?EnumSalesMan?:
?????public?SalesMan

{
protected:
?????int?Cost(vector?A);?//獲取A中保存的路徑的路徑長度,被被枚舉法調(diào)用

?????void?Enumerate(vector?Aint?i);?//利用枚舉法求最短的那條路徑,被被枚舉法調(diào)用

public:
?????void?Travel();

};
/*??文件名:EnumSalesMan.cpp??枚舉法??*/

#include?“StdAfx.h“
#include?“EnumSalesMan.h“
void?EnumSalesMan::Travel()
{
?????vector?B;?????

?????B.resize(path.size());
?????for?(unsigned?int?i=0;i
?????{
?????????B[i]=i+1;
?????}
?????minValue=Cost(B);//初始化路徑的長度
?????Enumerate(B0);
?????//把路徑打印出來以及路徑長度
?????cout<<“Enumerate??minValue:“<?????PrintPath();
}
int?EnumSalesMan::Cost(vector?A)

{
?????//獲取A中保存的路徑的路徑長度
?????int?sum=matrix[0][A[0]];//先求從0到第一個(gè)點(diǎn)的距離

?????for?(unsigned?int?i=1;i
?????{
?????????sum+=matrix[A[i-1]][A[i]];
?????}
?????sum+=matrix[A[i-1]][0];//再加上最后一個(gè)點(diǎn)到0點(diǎn)的距離
?????return?sum;
}
void?EnumSalesMan::Enumerate(vector?Aint?i)
//利用枚舉法求最短的那條路徑參數(shù)A中保存的路徑可能經(jīng)多的點(diǎn)
{
?????if?(i==A.s

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????86016??2007-10-24?21:03??貨擔(dān)郎\Debug\vc60.pdb

?????文件??????14266??2007-10-24?21:03??貨擔(dān)郎\貨擔(dān)郎.cpp

?????文件???????4221??2007-10-24?21:02??貨擔(dān)郎\貨擔(dān)郎.dsp

?????文件????????520??2007-10-24?21:02??貨擔(dān)郎\貨擔(dān)郎.dsw

?????文件??????25600??2007-10-24?23:28??貨擔(dān)郎\貨擔(dān)郎.ncb

?????文件??????????0??2007-10-24?21:03??貨擔(dān)郎\貨擔(dān)郎.plg

?????文件??????99840??2007-10-24?21:04??貨擔(dān)郎\貨郎擔(dān).doc

?????目錄??????????0??2009-08-06?09:54??貨擔(dān)郎\Debug

?????目錄??????????0??2009-08-06?09:54??貨擔(dān)郎

-----------?---------??----------?-----??----

???????????????230463????????????????????9


評(píng)論

共有 條評(píng)論