eightdigit.h
来自「实现八数码算法」· C头文件 代码 · 共 39 行
H
39 行
#ifndef EIGHTDIGIT_H
#define EIGHTDIGIT_H
using namespace std;
const static int targetNum[9]={1,2,3,8,0,4,7,6,5};//默认的目标状态
static int jieceng[9]={1,1,2,6,24,120,720,5040,40320};//0-8的阶层
class EightDight{
public:
EightDight();
/*EightDight(const EightDight &ed);*/
EightDight(const int num[]);
//定义空格的移动
bool moveUp();
bool moveDown();
bool moveLeft();
bool moveRight();
//得到节点的评价函数值
void getEvalue1();//W(n)
void getEvalue2();//P(n)
//判断是否可以到达目标状态
bool canSolve(EightDight target);
//重载“==”运算符,以便于只比较两个节点的数字状态而不比较parent指针
bool operator==(const EightDight &ed);
//获得节点的哈希值
int hashval();
//打印状态
void display();
void display2();
EightDight *parent;//指向父节点
EightDight *next;//指向下一个节点
int EDnum[9];
int evalue;//评价函数值
int depth;//节点深度
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?