//指针实例搜索算法

//迷宫算法

//搜索是最长的使用深度优先搜索和广度优先搜索

//作为名称作为一个深度优先搜索,每路一直在寻找到底。

//为了防止想法,这样的数据结构

//使得每次找到思路的时候还能够退出到出发点。

//

//

//广度优先搜索

//广度优先搜索就是利用队列性质先进先出的性质,把每次的搜索结果放入队列,

//排除思路等条件

//

//回溯法

//就是枚举每一个可能的推断,假设能够就运行,不能够就返回開始的地方

//八皇后的实现:回溯法

#include <iostream>

#include <cstdio>

#include <cmath>

using namespace std;

int a[9] = {100};

//用来存放解的个数

int count = 0;

int Place(int i, int value)

{

int j;

if(i == 1)

return 1;

for(j = 1; j < i; ++j)

{

if(a[j] == value)

return 0;

if(abs(i - j) == abs(value - a[j]))

return 0;

}

return 1;

}





void ShowResult()

{

int i, j;

for(j = 1; j <= 8; ++j)

{

for(i = 1; i < a[j]; ++i)

{

printf("* ");

}

printf("Q");

for(i = i + 1; i <= 8; ++i)

{

printf("* ");

}

printf("\n");

}

}





void Backtrack(int t)

{

int i;

if(t > 8)

{

printf("*********************");

ShowResult();

count++;

return;

}

else

{

for(i = 1; i <= 8; ++i)

{

if(Place(t, i))

{

a[t] = i;

Backtrack(t + 1);

}

}

}

}













void ShowCount()

{

printf("\n八皇后的问题共同拥有%d个解:\n", count);

}





int main()

{

Backtrack(1);

ShowCount();

return 0;





}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

最新文章

  1. PHP判断sql语句是否执行成功
  2. T-sql 查询
  3. css 图片的无缝滚动
  4. DEDECMS调用特定ID文章内容的实现方法
  5. 【全面完美方案】iPhone 4S WiFi变灰 DIY修复方式
  6. PHP session过期时间
  7. RS232与RS485时序分析
  8. Canvas路径、描边、填充
  9. Windows Phone开发(28):隔离存储B
  10. 关于最新版本的log4net使用中遇到的问题
  11. 《JavaScript网页特效经典300例-高级篇》
  12. AndroidStudio项目.gitignore文件内容
  13. 大白话Vue源码系列(04):生成render函数
  14. C语言的输入输出操作函数小结
  15. datagrid 新增,并行内编辑,提交保存
  16. 由于github仓库中提前建立readme文件,导致git push报错error: failed to push some refs to &#39;git@github.com:
  17. ARTS打卡计划第一周-Tips-ControllerAdvice的使用
  18. Django知识补充
  19. 【JVM.5】类文件结构
  20. ArcGIS中国工具2.5正式发布

热门文章

  1. 使用NSCondition实现多线程同步
  2. Oracle数据库的锁类型
  3. spring 重定向以及转发 乱码问题解决
  4. mongodb笔记2
  5. easyui LinkButton
  6. Mvc后台接收 参数
  7. cocos2d-x-3.1在eclipse中的环境搭建
  8. 20那天android得知
  9. EmEditor Professional(文本编辑) 下载地址
  10. 乐在其中设计模式(C#) - 观察者模式(Observer Pattern)