⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queuenew.cpp

📁 数据结构例子代码
💻 CPP
字号:
//将8个皇后放在一个8行8列的棋盘,使它们互不冲突,
//即不在同一列、不在同一行、不在同一条对角线上。
#include"stdio.h"
char a[9][9];//棋盘矩阵
int up[16],down[17],col[9];//标志数组,为逻辑值,判定位置是否冲突
int total=0;
void print()//打印棋盘
{
 int j,i;
 printf("\n");
 for(i=1;i<=8;i++)
 {printf("\n");
  for(j=1;j<=8;j++)
	printf("%4c",a[i][j]);
 }
}
void try1(int i)
{
	int j;
	for(j=1;j<=8;j++)
	 if(up[8+i-j]&&down[i+j]&&col[j])
	 {a[i][j]='Q';//将皇后i放于位置(i,j)
	   up[8+i-j]=0;
	   down[i+j]=0;
	   col[j]=0;
	   if(i<8) try1(i+1);
	   else  {total++;print();}
	   a[i][j]='*';//释放位置(i,j)
	   up[8+i-j]=1;
	   down[i+j]=1;
	   col[j]=1;
	 }
}
void main()
{
  int j,i;
  for(j=1;j<=15;j++) up[j]=1;  //主对角线
  for(j=2;j<=16;j++) down[j]=1;//次对角线
  for(j=1;j<=8;j++) col[j]=1;  //同列
  for(i=1;i<=8;i++)//置空棋盘
	  for(j=1;j<=8;j++)
	     a[i][j]='*';
  
  print();
  printf("\n");
  try1(1);//试着将1放在正确位置
  printf("\ntotal=%d\n",total);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -