用栈求解n皇后问题
#include
#include
//共用全局变量数据初始化,
int place[8]={0};
bool flag[8]={1,1,1,1,1,1,1,1};//已放置列的坐标
bool col1[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};//已放置皇后的上对角线
bool col2[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};//已放置皇后的下对角线
int number=0;
//递归回溯函数
void general(int n);
//打印函数
void print();
int main(){
general(0);
printf("\n共有%d种摆放方式",number);
return 0;
}
void general(int n){
int col;
for(col=0;col<8;col++){
if(flag[col]&&col1[n-col+7]&&col2[n+col]){
place[n]=col;
2022-12-16 09:15:05
12KB
栈
数据结构
1