⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eightdigit.h

📁 实现八数码算法
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -