码迷,mamicode.com
首页 > 其他好文 > 详细

C指针编程之道 ---第十次笔记

时间:2014-12-15 10:28:36      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   io   os   sp   for   strong   on   数据   问题   

//指针在搜索算法中实例
//迷宫算法
//搜索最长用到的就是深度优先搜索和广度优先搜索
//深度优先搜索就像名字一样,对每一个道路一直搜索到底,
//为了防止思路,特别的设置了栈这种数据结构
//使得每次找到思路的时候还可以退出到出发点。
//
//
//广度优先搜索
//广度优先搜索就是利用队列性质先进先出的性质,把每次的搜索结果放入队列,
//排除思路等条件
//
//回溯法
//就是枚举每个可能的判断,如果可以就执行,不可以就返回开始的地方
//八皇后的实现:回溯法
#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;


}

C指针编程之道 ---第十次笔记

标签:style   io   os   sp   for   strong   on   数据   问题   

原文地址:http://blog.csdn.net/u012965373/article/details/41940327

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!