资源简介
完整的作业,不需要改动,采用书上所说迭代深度加深算法,含注释

代码片段和文件信息
// 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++算法
相关资源
- c语言电子商务系统
- 我的C语言寒假作业-学生通讯录系统(
- 简易学生管理系统源码 数据结构 大作
- [BUPT]面向对象程序设计C++ - 平时作业
- 数据结构大作业 停车场管理 C语言
- 航空客运订票系统 c语言 数据结构作
- 课程设计--C语言学生成绩管理系统内
- C++作业_选课系统
- C/C++语言大作业、小游戏
- 人工智能经典作业,野人与传教士过
- 模式识别大作业K近邻算法
- c++超市管理系统 数据库作业
- C++大作业项目报告
- 2014年DSP大作业
- c语言数据结构期末大作业-家族族谱管
- wumpus世界(MFC编写)
- 通讯录MFC程序,C++大作业
- MFC计算器编程,可视化,含详细实现
- EGE C语言 图书馆管理系统 实习作业
- c语言期末大作业图书管理系统
- C语言大作业
- VC6.0进程调度算法实现,作业调度 有
- c++课程设计作业,图书馆管理系统 源
- 四子棋智能下棋C语言实现
- 模式识别课程作业:C均值(k_means)聚
- 操作系统课程大作业-文件管理系统
- C++ 大作业 超市收银系统
- windows程序设计大作业 斗地主 mfc
- 计算机图形学作业,中点算法画椭圆
- LeNet-5神经网络——C源代码
评论
共有 条评论