算法设计中的经典问题

源代码在线查看: queen.cpp

软件大小: 83 K
上传用户: sun67512945
关键词: 算法设计
下载地址: 免注册下载 普通下载 VIP

相关代码

				// QUEEN.cpp: implementation of the CQUEEN class.
				//
				//////////////////////////////////////////////////////////////////////
				
				#include "stdafx.h"
				#include "符号三角形,n皇后,圆排列.h"
				#include "QUEEN.h"
				
				#ifdef _DEBUG
				#undef THIS_FILE
				static char THIS_FILE[]=__FILE__;
				#define new DEBUG_NEW
				#endif
				
				//////////////////////////////////////////////////////////////////////
				// Construction/Destruction
				//////////////////////////////////////////////////////////////////////
				
				CQUEEN::CQUEEN()
				{
				
				}
				
				CQUEEN::~CQUEEN()
				{
				
				}
				
				
				bool CQUEEN::Place(int k)
				{
					for(int j=1;j						if((abs(k-j)==abs(x[j]-x[k]))||(x[j]==x[k]))
							return false;
						return true;
				}
				
				void CQUEEN::Backtrack(int t)
				{
					if(t>n)sum++;
					else
						for(int i=1;i						{
							x[t]=i;
						if(Place(t))
							Backtrack(t+1);
						}
				//			for(int i=1;i				//	      cout				}
				
				int nQueen(int n)
				{
					CQUEEN x;
					x.n=n;
					x.sum=0;
					int *p=new int [n+1];
					for(int i=0;i						p[i]=0;
					x.x=p;
					x.Backtrack(1);
					delete[]p;
				
					return x.sum;
				
				}
							

相关资源