今天老师让做了个迷宫问题,我一看到就发现和我之前写过的一个程序是一样 的,但是在后来编写的时候有一个地方搞错了,最后下课了我还是没有正确的编写好,然后今天回来之后自己有看了一下,现在已经解决了。

#ifndef DIRECTION_H

#define DIRECTION_H

#include<iostream>

using namespace std;

struct node

{

int a;

int b;

};

class Direction

{

public:

Direction();

~Direction();

void DFS(int n, int m);

void udlr(int &n, int &m, int num);

void durl(int &n, int &m, int num);

void output();

private:

int **a;

int **visit;

node zxh[64];

int count1;

};

Direction::Direction()

{

count1 = 0;

a = new int*[8];

visit = new int*[8];

for (int i = 0; i<8; i++)

{

a[i] = new int[8];

visit[i] = new int[8];

}

for (int i = 0; i<8; i++)

{

zxh[i].a = -1;

zxh[i].b = -1;

}

int b[] = { 0, 0, 0, 0, 0, 0, 0, 0,

0, 1, 1, 1, 1, 0, 1, 0,

0, 0, 0, 0, 1, 0, 1, 0,

0, 1, 0, 0, 0, 0, 1, 0,

0, 1, 0, 1, 1, 0, 1, 0,

0, 1, 0, 0, 1, 0, 0, 0,

0, 1, 0, 0, 1, 0, 0, 0,

0, 1, 1, 1, 1, 1, 1, 0 };

for (int i = 0; i<8; i++)

{

for (int j = 0; j<8; j++)

{

a[i][j] = b[i * 8 + j];

visit[i][j] = 0;

}

}

}

Direction::~Direction()

{}

void Direction::udlr(int &n, int &m, int num)

{

if (num == 1)

n--;

else if (num == 2)

n++;

else if (num == 3)

m--;

else

m++;

}//著名方向

void Direction::durl(int &n, int &m, int num)

{

if (num == 1)

n++;

else if (num == 2)

n--;

else if (num == 3)

m++;

else

m--;

}//著名方向

void Direction::output()

{

int num = 0;

while (zxh[num].a != -1)

{

if (num % 7 == 0)

cout << endl;

cout << "(" << zxh[num].a << "," << zxh[num].b << ")"<<"  ";

num++;

}

}

void Direction::DFS(int n, int m)

{

if (n == 7 && m == 7)

{

output(); cout << endl; return;

}

else

{

for (int i = 1; i < 5; i++)

{

udlr(n, m, i);

if (n >= 0 && n < 8 && m >= 0 && m < 8 && a[n][m] == 0)

{

zxh[count1].a = n;

zxh[count1].b = m;

count1++;

a[n][m] = 1;

DFS(n, m);

a[n][m] = 0;

count1--;

zxh[count1].a = -1;

zxh[count1].b = -1;

}

durl(n, m, i);

}

}

}

#endif

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#include"Direction.h"

#include<iostream>

using namespace std;

int main()

{

Direction z;

z.DFS(0,0);

return 0;

}

最新文章

  1. Spring系列之AOP实现的两种方式
  2. 阿里云 ECS 逻辑卷挂载数据盘
  3. 【Bugly技术干货】那些年我们用过的显示性能指标
  4. Python开发入门与实战8-基于Java的集成开发环境
  5. ArcGIS API for Silverlight代码中使用Template模板
  6. display:flex 多栏多列布局
  7. C#数字千分位问题
  8. jmeter 使用聚合报告分析jtl文件
  9. WCF - REST服务
  10. Intent组件
  11. ODI利用goldengate实现增量数据捕获
  12. CCNA网络工程师学习进程(9)GNS3的安装与配置
  13. AndroidAnnotations框架简单使用方法
  14. android源码、博文2
  15. Uva - 804 - Petri Net Simulation
  16. 生鲜配送管理系统_升鲜宝供应链系统V2.0 设计思想及主要模块,欢迎大家批评指点。
  17. 倒影问题(reflect:below)
  18. ARMCC和GCC编译ARM代码的软浮点和硬浮点问题 【转】
  19. 两个有序数组中的中位数以及求第k个最小数的值
  20. 【转】PHP 杂谈 坑爹的file_exists

热门文章

  1. django基础知识之视图:
  2. 9.秋招复习简单整理之Spring面试AOP和IOC的理解
  3. 《转载黑马教程》HTML&amp;&amp;CSS讲义,仅供参考
  4. NOIP最后阶段每日小记
  5. Excel催化剂开源第34波-SM.MS图床API调用(用POST上传multipart/form-data内容)
  6. C#3.0新增功能10 表达式树 04 执行表达式
  7. dede:channelartlist currentstyle高亮显示
  8. 爬虫之解析库pyquery
  9. Ubuntu16.04配置Django服务器环境
  10. JQuery制作简易的考试答题管理系统