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

📄 hezhaowu.cpp

📁 八皇后 的非递归算法 适合初学数据结构的朋友们
💻 CPP
字号:
#include<iostream>
#include<iomanip>
using namespace std;
#define COSZ 8
#define SLSZ 15
#define QUSZ 8
#define TRUE 1
#define FLASE 0
int col[COSZ],slash[SLSZ],bslash[SLSZ];
int queen[QUSZ];
int n=0, sum=0;
void generate(void);
main()
{
	int c,s;
	for(c=0;c<=7;++c)
		col[c]=TRUE;
	for(s=0;s<=14;++s)
	{
		slash[s]=TRUE;
		bslash[s]=TRUE;
	}
	cout<<"rownum: 0  1  2  3  4  5  6  7 "<<endl;
	generate();
	cout<<"total:"<<sum<<endl;;

	return(0);
}


void generate(void)
{
	int h,i;
	for(h=0;h<=7;h++)
	{
		if(col[h]&&slash[n+h]&&bslash[n-h+7])
		{
			queen[n]=h;
			col[h]=FLASE;
			slash[n+h]=FLASE;
			bslash[n-h+7]=FLASE;
			n+=1;
			if(n==8)
			{
				sum++;
				cout<<setw(6)<<sum ;
				for(i=0;i<=7;i++)
					cout<<setw(3)<<queen[i];
			    cout<<endl;
				
			}
			else generate();

			n--;
			slash[n+h]=TRUE;
			bslash[n-h+7]=TRUE;
			col[h]=TRUE;
		}
	}
}


⌨️ 快捷键说明

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