资源简介
完整的作业,不需要改动,采用书上所说迭代深度加深算法,含注释
代码片段和文件信息
// DNF_Search.cpp : Defines the entry point for the console application.
//
#include “iostream.h“
#include “stdio.h“
#include “stdlib.h“
#include “string.h“
#include
#include
using namespace std;
const int N = 3;//3*3图
enum Direction{NoneUpDownLeftRight};//方向
struct Map //存储数组及方向信息
{
int cell[N][N]; //数码数组
Direction BelockDirec;//所屏蔽方向
int step;
struct Map * Parent;//父节点
};
//打印图
void PrintMap(struct Map *map)
{
cout<<“*************************************************“< for(int i=0;i {
for(int j=0;j {
cout<cell[i][j]<<“ “;
}
cout< }
cout<<“*************************************************“< }
//移动图
struct Map * MoveMap(struct Map * mapDirection Directbool CreateNewMap)
{
struct Map * NewMap;
//获取空闲格位置
int ij;
for(i = 0; i < N; i++)
{
bool HasGetBlankCell = false;
for(j = 0; j < N; j++)
{
if(map->cell[i][j] == 0)
{
HasGetBlankCell = true;
break;
}
}
if(HasGetBlankCell)
break;
}
//移动数字
int t_i = it_j = j;
bool AbleMove = true;
switch(Direct) //判断沿direct所指方向移动数字是否被允许
{
case Down:
t_i++;
if(t_i >= N)
AbleMove=false;
break;
case Up:
t_i--;
if(t_i < 0)
AbleMove=false;
break;
case Left:
t_j--;
if(t_j < 0)
AbleMove=false;
break;
case Right:
t_j++;
if(t_j >= N)
AbleMove=false;
break;
};
if(!AbleMove)//不可以移动则返回原节点
{
return map;
}
if(CreateNewMap)
{
NewMap = new Map();
for(int x = 0; x < N; x++)
for(int y = 0; y < N; y++)
NewMap->cell[x][y] = map->cell[x][y];
}
else NewMap = map;
NewMap->cell[i][j] = NewMap->cell[t_i][t_j];
NewMap->cell[t_i][t_j] = 0;
return NewMap;
}
//判断是否搜索到目标状态
bool IsSuccess(struct Map * mapstruct Map * Target)
{
bool IsSuc = true;
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
if(map->cell[i][j] != Target->cell[i][j])
{
IsSuc = false;
break;
}
}
if(!IsSuc)
break;
}
return IsSuc;
}
struct Map * DNF_Search(struct Map * beginstruct Map * Targetint dm)
{
struct Map * p1 *p2*T=NULL;
int step=1;
stack
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1080 2010-01-16 10:04 EiNum\Debug\1.obj
文件 48589 2010-01-16 10:43 EiNum\Debug\dfs8.obj
文件 221225 2010-01-16 10:58 EiNum\Debug\EiNum.exe
文件 274020 2010-01-16 10:58 EiNum\Debug\EiNum.ilk
文件 48574 2010-01-16 10:58 EiNum\Debug\EiNum.obj
文件 186920 2010-01-16 09:50 EiNum\Debug\EiNum.pch
文件 1098752 2010-01-16 10:58 EiNum\Debug\EiNum.pdb
文件 1080 2010-01-16 09:50 EiNum\Debug\Text2.obj
文件 214016 2010-01-16 10:58 EiNum\Debug\vc60.idb
文件 176128 2010-01-16 10:58 EiNum\Debug\vc60.pdb
文件 4324 2010-01-16 11:08 EiNum\EiNum.cpp
文件 4266 2010-01-16 11:00 EiNum\EiNum.dsp
文件 516 2010-01-16 09:43 EiNum\EiNum.dsw
文件 41984 2010-01-16 11:08 EiNum\EiNum.ncb
文件 48640 2010-01-16 11:08 EiNum\EiNum.opt
文件 1228 2010-01-16 10:59 EiNum\EiNum.plg
文件 57344 2010-01-16 10:59 EiNum\Release\EiNum.exe
文件 13321 2010-01-16 10:59 EiNum\Release\EiNum.obj
文件 2128192 2010-01-16 10:59 EiNum\Release\EiNum.pch
文件 33792 2010-01-16 10:59 EiNum\Release\vc60.idb
目录 0 2010-01-16 10:58 EiNum\Debug
目录 0 2010-01-16 10:59 EiNum\Release
目录 0 2010-01-16 11:08 EiNum
----------- --------- ---------- ----- ----
4603991 23
- 上一篇:《语音信号处理 C++版》所有源码
- 下一篇:装箱问题.C++算法
相关资源
- N皇后问题构造性方法与启发式修补的
- 遗传算法求解TSP旅行商问题C语言源代
- 北邮计算机院数据结构课程大作业:
- 西工大C语言大作业模板
- 作业调度先来先服务短作业高响应比
- 数据结构 银行排队系统
- c++作业题---编写一个函数,输入一个
- 计算机图形学作业原创C/C++ VC++6.0,
- 斗地主AI源代码
- 操作系统课程大作业-文件管理系统
- C语言作业:学生管理系统EasyX版
- C语言程序设计-图书管理系统
- 西北工业大学C语言大作业实验报告
- C++大作业 MFC 学生成绩管理系统
- c++ 大作业 实现坦克大战
- c++ 课程设计报告 可直接交作业版
- 编译原理LLLRSLR作业集锦
- 人工智能象棋博弈 含悔棋记录功能
- 《人工智能游戏编程真言》.pdf
- 香农编码 哈夫曼编码 信息论期中作业
- c++面向对象大作业 银行系统
- 西工大C/C++大作业
- C++大作业-银行管理系统课程设计报告
- C++大作业-银行管理系统源代码
- 简单的极大极小算法实现的井字棋程
- C++大作业 停车场管理系统
- 基于概率模型的wumpus程序
- 人工智能专家系统C语言
- 计算机图形学大作业 用vc++编的,包括
- C++第一次大作业
评论
共有 条评论