資源簡(jiǎn)介
該程序用C語(yǔ)言編寫(xiě)(在VC++環(huán)境下運(yùn)行即可),使用貪心算法求得最短哈密頓回路的近似解,簡(jiǎn)單易懂。
代碼片段和文件信息
#include?“stdio.h“
//#include?“string.h“
int?G[8][8]={{02819}
?????{205109}
?????{85053}
?????{110505}
?????{99350}};???
struct?Edge???//記錄邊的信息
{
int?x;????
int?y;
int?value;???//邊的權(quán)值
};
typedef?struct?Edge?Weight;
int?T[5]={0};???//用于標(biāo)識(shí)節(jié)點(diǎn)是否被遍歷過(guò)
int?P[6]={0};???//存放路徑
int?sum_value=0;????//計(jì)算總路徑長(zhǎng)度
?????
Weight?min_value(int?r)????//找出當(dāng)前節(jié)點(diǎn)具有最小權(quán)值的相鄰邊
{
???int?ij=0min;
???Weight?W[5];??????//用于存放相鄰邊的信息
???for(i=0;i<5;i++)
???{
???if((T[i]==0)&&(i!=r))????//當(dāng)節(jié)點(diǎn)未被遍歷且不是自己到自己
???{
?W[j].x=r;
?W[j].y=i;
?W[j].value=G[r][i];????//記錄相鄰邊的信息
?????j++;
???}
???}
???min=W[0].value;
???for(i=0;i ???{
???if(W[i+1].value ???{
???W[0].x=W[i+1].x;
???W[0].y=W[i+1].
評(píng)論
共有 條評(píng)論