wstsp.h
来自「开发环境:Visual C++ .net2003 功能介绍:神经网络算法实验;」· C头文件 代码 · 共 72 行
H
72 行
#pragma once
#include <vector>
typedef struct _CityPoint
{
FLOAT x;
FLOAT y;
}CityPoint, *PCityPoint;
typedef std::vector<INT> CityOrderDef;
typedef struct stCityInfo
{
INT m_CityNum;
CityOrderDef m_pCityOrder;
PCityPoint m_pCities;//按从0开始的顺序
public:
stCityInfo()
{
m_CityNum = 0;
m_pCityOrder.clear();
m_pCities = NULL;
}
stCityInfo(INT _CityNum, PCityPoint _pCities, CityOrderDef _pCityOrder)
{
m_CityNum = _CityNum;
m_pCityOrder = _pCityOrder;
m_pCities = _pCities;
}
}CityInfo, *PCityInfo;
class WSTSP
{
public:
WSTSP(void);
~WSTSP(void);
public:
static BOOL Show(CityOrderDef _Order);
public:
static INT GetRightIndex_Greedy(CityOrderDef _CityOrder, INT _CurCityNum);
static INT GetLeftIndex_Greedy(CityOrderDef _CityOrder, INT _CurCityNum);
static INT GetCityIndex(CityOrderDef _CityOrder, INT _CurCityNum);
static BOOL GetShortestCities(CityInfo &_CityInfo, INT _City, INT *_CitySerial, INT _ShortestCityNum = 3);
static BOOL MakeCityDistStyle(CityInfo &_CityInfo, INT **_CitySerial, INT _ShortestCityNum = 3);//已经定义好_CitySerial
static BOOL AdjustCityOrder(CityInfo &_CityInfo);
static BOOL MakeStyleCityOrder(CityInfo &_CityInfo, INT **_CitySerial, INT _ShortestCityNum = 3);
static FLOAT CityDistance(FLOAT _Ax, FLOAT _Ay, FLOAT _Bx, FLOAT _By);
static FLOAT CityDistance(CityPoint _A, CityPoint _B);
static FLOAT TSPTotalDistance(PCityInfo _pCityInfo);
static BOOL ReadCityInfoFromFile(PCHAR _FileName, CityInfo &_CityInfo);
static BOOL GenCityInfoToFile(PCHAR _FileName, INT _CityNum);
static VOID SwapValues(INT & _A, INT & _B);
static VOID GenRandCityOrder(CityInfo &_CityInfo);
static VOID GenRandCityOrder(CityOrderDef &_CityOrder);
static VOID ReverseSubOrder(CityOrderDef &_CityOrder);
static VOID ReverseSubOrder(INT _Begin, INT _End, CityOrderDef & _CityOrder);
static VOID RearrangeSubOrder(CityOrderDef &_CityOrder);
static VOID RearrangeSubOrder(INT _Begin, INT _End, CityOrderDef & _CityOrder);
static BOOL EqualOrders(CityOrderDef _A, CityOrderDef _B);
static BOOL CrossSubOrder(CityOrderDef _CityOrderPa, CityOrderDef _CityOrderPb, CityOrderDef & _CityOrderSa, CityOrderDef & _CityOrderSb);
static BOOL CrossSubOrder(INT _Begin, INT _End, CityOrderDef _CityOrderPa, CityOrderDef _CityOrderPb, CityOrderDef & _CityOrderSa, CityOrderDef & _CityOrderSb);
};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?