回溯算法(马踏棋盘)

简介: 回溯算法(马踏棋盘)

近期学习了回溯算法于是自己写了马踏棋盘的递归以及非递归方式的代码:

/*
   Theme:马踏棋盘
         回溯算法 
   Coder:秒针的声音
   Time:2015.1.11 
*/
#include 
#include 
#include 
#define M 8
typedef struct node{
  int horse[M][M];
  int RowStep[M];
  int ColStep[M];
}Horse;
Horse horse1;
int CntHorse=0;
void Init(Horse *p);
void HorseRun(int i,int j,int cnt);
void Prin(Horse *p);
int main(void)
{   
    FILE *fp;
  fp=fopen("horse.txt","wt+");
  Init(&horse1);
  /*棋盘位于(0,0)--(7,7)位置*/
  srand((unsigned)time(NULL));
  int i=rand()%10;
  int j=rand()%10;
    while(i>7) i=rand()%10;
    while(j>7) j=rand()%10;
  HorseRun(i,j,1);
     fclose(fp);
  return 0;
}
//初始化 
void Init(Horse *p)
{ 
     int i;
    for(i=0;i
        horse[i/M][i%M]=0;
  }
     int rstep[M]={-2,-1,1,2,2,1,-1,-2};
     int cstep[M]={1,2,2,1,-1,-2,-2,-1};
     for(i=0;i
         RowStep[i]=rstep[i]; p->ColStep[i]=cstep[i]; } } void Prin(Horse *p) { int i,j; printf("No.%d\n",++CntHorse); for(i=0;i
          horse[i][j]); } printf("\n"); } putchar('\n'); } void HorseRun(int i,int j,int cnt) { int times; int a,b;//中间变量 for(times=0;times
           =0&&a
            =0&&b
/*
 Theme:马踏棋盘(非递归)
 Coder:秒针的声音
 time:2015.1.13 
*/
#include 
using namespace std;
#define N 8
#include 
class horse{
  private:
    int board[N][N];
    int Step[2][N];
    int stack[N*N];
    int top;
    int i;
  int j;
  int n;
    public:
      horse(){
        n=1;
        for(int i=0;i
       i=0;
         this->j=4;
      }
      void Cout(){
          cout<<"N0."<
        <
         =0&&a
          =0&&b
           HorseRun(); return 0; } 

运行效果如下:


20150113014656767.png

(本人水平有限,若有不足之处欢迎大家交流)

相关文章
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
1月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之王道第2.3章节之线性表精题汇总二(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人之数据结构与算法系列学习×单双链表精题详解、数据结构、C++、排序算法、java 、动态规划 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
算法
”回溯算法“框架及练习题
”回溯算法“框架及练习题
45 0

热门文章

最新文章