//指针实例搜索算法

//迷宫算法

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

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

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

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

//

//

//广度优先搜索

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

//排除思路等条件

//

//回溯法

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

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

#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. 工作经常使用的SQL整理,实战篇(一)

    原文:工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实 ...

  2. 将ACCESS数据库迁移到SQLSERVER数据库

    原文:将ACCESS数据库迁移到SQLSERVER数据库 将ACCESS数据库迁移到SQLSERVER数据库 ACCESS2000文件 用ACCESS2007打开,并迁移到SQLSERVER2005里 ...

  3. android 泰国/缅甸语/捷克较低,Contacts联系出现精神错乱之类的问题清单

    更改ContactsProvider2.java文件 public static final String SECTION_HEADING = "SUBSTR(%1$s,1,1)" ...

  4. POJ 2738 Two Ends(记忆化)

    Description In the two-player game "Two Ends", an even number of cards is laid out in a ro ...

  5. windows任务设置定时

    windows 的Schedule Task .创建一个配置 1.点击"开始" 2.点击"控制面板" 3.双击"任务计划程序" 4.双击&q ...

  6. Js常用技巧

    摘录:http://crasywind.blog.163.com/blog/static/7820316920091011643149/ js 常用技巧 1. on contextmenu=" ...

  7. NPOI+ExcelReport

    分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)   自ExcelUtility类推出以来,经过项目中的实际使用与不断完 ...

  8. tomcat 重启进程

    查看端口: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat –apn 查看所有的进程和端口使用情况.发现下面的进程列表,其中最后一栏是 ...

  9. 自己定义actionbar

    android中的actionbar可提供自己定义view.详细是先写好自己定义view的布局,然后在代码中获取Actionbar对象.调用 setCustomView方法. 可是这样,它还是会显示前 ...

  10. React Native是一套使用 React 构建 Native app 的编程框架

    React Native是一套使用 React 构建 Native app 的编程框架 React Native at first sight what is React Native? 跟据官方的描 ...