顺便复习了类的继承,派生类的写法如下:
Derive (int _cl, int _rl, int _zl, int _id):Base(_cl, _id),rl(_rl),zl(_zl){}
注意,
1.基类的构造函数Base() 的两个参数是实参,Derive的形参传递给Base(),就是实参.如果写成Base(3,5),也不出错.
2.基类构造函数的调用放在函数头部,不能放在函数体{}中。
一.问题描述
优先队列中,zl=cl+rl作为优先级
cl:当前走过的路程.
rl:剩余的路径长度 拥剩余每个结点的最小出边之和. 例如有一表示1,2,3,4 四个城市的矩阵:
{INF,15,30,5}, min=5
{15,INF,6,12}, min=6
{30,6,INF,3}, min=3
{5,12,3,INF } min=3
初始时,剩余4个城市 rl=5+6+3+3=17 (注意,不同结点的最小出度可能相同)
二.代码实现
1.全局变量区,有一部分继承自TCP.h,(详见文章上一篇)
#include"TSP.h" //继承全局变量和结构体State2
int minsum; //记录剩余节点的最小出路之和
int minout[N3]; //记录各个结点的最小出路
//记录状态
struct State3: public Sta