資源簡介
該程序用C語言編寫(在VC++環境下運行即可),使用貪心算法求得最短哈密頓回路的近似解,簡單易懂。
代碼片段和文件信息
#include?“stdio.h“
//#include?“string.h“
int?G[8][8]={{02819}
?????{205109}
?????{85053}
?????{110505}
?????{99350}};???
struct?Edge???//記錄邊的信息
{
int?x;????
int?y;
int?value;???//邊的權值
};
typedef?struct?Edge?Weight;
int?T[5]={0};???//用于標識節點是否被遍歷過
int?P[6]={0};???//存放路徑
int?sum_value=0;????//計算總路徑長度
?????
Weight?min_value(int?r)????//找出當前節點具有最小權值的相鄰邊
{
???int?ij=0min;
???Weight?W[5];??????//用于存放相鄰邊的信息
???for(i=0;i<5;i++)
???{
???if((T[i]==0)&&(i!=r))????//當節點未被遍歷且不是自己到自己
???{
?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].
- 上一篇:《數據結構(c++描述)》教材習題解答.zip
- 下一篇:c語言哈夫曼樹課程設計
評論
共有 條評論