//指针实例搜索算法

//迷宫算法

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

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

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

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

//

//

//广度优先搜索

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

//排除思路等条件

//

//回溯法

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

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

#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编程的指针涛 ---第十笔记的更多相关文章

  1. C编程的指针涛 ---第九笔记

    //这里说的是一个指针,指向算法的应用 //直接排序 //每个排序算法是指针指向的每个元件的特性的方便的交流 //这里的基本思想是,处理的记录的排序n - 1第二选择. //第i次操作选择i大(小)的 ...

  2. 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数

    本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O ...

  3. 《Linux命令、编辑器与shell编程》第三版 学习笔记---002

    <Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BAS ...

  4. python编程:从入门到实践学习笔记

    python编程:从入门到实践学习笔记 原文地址:https://blog.csdn.net/qq_35554125/article/details/79548192 [day 1]python编程: ...

  5. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十四)之Type Information

    Runtime type information (RTTI) allow you to discover and use type information while a program is ru ...

  6. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十二)之Error Handling with Exceptions

    The ideal time to catch an error is at compile time, before you even try to run the program. However ...

  7. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(十)之Inner Classes

    The inner class is a valuable feature because it allows you to group classes that logically belong t ...

  8. 【unix网络编程第三版】阅读笔记(二):套接字编程简介

    unp第二章主要将了TCP和UDP的简介,这些在<TCP/IP详解>和<计算机网络>等书中有很多细致的讲解,可以参考本人的这篇博客[计算机网络 第五版]阅读笔记之五:运输层,这 ...

  9. 2-Linux C语言指针与内存-学习笔记

    Linux C语言指针与内存 前面我们对于: c语言的基本用法 makeFile文件的使用 main函数的详解 标准输入输出流以及错误流管道 工具与原理 指针与内存都是c语言中的要点与难点 指针 数组 ...

随机推荐

  1. SharePoint 2010 新列表模板列表

    SharePoint 2010 新列表模板列表 项目描述叙事 发展环境创造了良好的名单为模板.然后使用列表模板将其复制到生产环境. 脚步 1. 打开"列表设置",找到"将 ...

  2. Linux 下开启ssh服务(转)

    二.SSH SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目 ...

  3. poj 1962 Corporative Network

    主题链接:http://poj.org/problem?id=1962 思路:每一个集合中用根节点标记这个集合,每一个点到根节点的距离. code: <span style="font ...

  4. 乐在其中设计模式(C#) - 单例模式(Singleton Pattern)

    原文:乐在其中设计模式(C#) - 单例模式(Singleton Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 单例模式(Singleton Pattern) 作者:weba ...

  5. MongoDB学习笔记-认识MongoDB

    学习参考地址 http://www.runoob.com/mongodb NoSql 流行的数据库Oracle,SqlServer,MySql为关系性数据库,相对的,也有非关系性数据库,统称为NoSq ...

  6. 开源Math.NET基础数学类库使用(12)C#随机数扩展方法

    原文:[原创]开源Math.NET基础数学类库使用(12)C#随机数扩展方法                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  7. 【Android进阶】获取Android软件的版本信息

    PackageInfo pinfo = getPackageManager().getPackageInfo("com.andbase", PackageManager.GET_C ...

  8. Windows Auzre 微软的云计算产品的后台操作界面

    Windows Auzre 微软的云计算产品的后台操作界面,试用期,相比于阿里云后台操作不是人. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTmFvbG ...

  9. hdu2852--KiKi&#39;s K-Number(段树,求第一k的数量)

    KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. 设计模式模式游客(Visitor)摘录

    23种子GOF设计模式一般分为三类:创建模式.结构模型.行为模式. 创建模式抽象的实例,怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化托付给还 ...