八皇后问题C++

这篇博客详细介绍了如何使用C++编程解决经典的八皇后问题。通过自定义Board类和Stack1栈类,实现了放置和移除皇后,判断冲突等功能。程序以递归方式寻找所有可能的解决方案,并输出棋盘状态。此外,还提供了构造函数和析构函数以确保对象的正确初始化和清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>//加入标准输入输出流空间 
using namespace std;//引入命名空间 

enum States {
    used, free1 };//定义枚举型states变量used(已使用)和freel(未使用)两个 

class Board    //一盘棋8*8,自定义Board类 
{
   
private://定义可以在类外访问的私有成员 
    char board[8][8]; //定义可以在类外访问的私有成员,在此是一个私有二维字符数组成员Board 
    States Rows[8], DiagsLR[15], DiagsRL[15];//定义三个 可以在类外访问的三个私有成员的一维数组 

public:        //只能被该类的成员函数所访问的公有成员
    Board();   //构造函数:确保每个对象正确地初始化
    ~Board() {
   }  //构造函数
    bool isAttacked(int, int);//定义一个布尔类型变量的函数,判断是否冲突 
    void Print();  //定义一个输出流的函数 
    void PlaceQueen(int, int); //定义一个放皇后的函数 ,输出即为皇后的最后坐标 
    void RemoveQueen(int, int); //定义一个移开皇后的函数 
    bool isIn(int row, int col); //定义一个布二类型函数用于判断是否存在 
};

const int SSize = 8;  //定义一个恒定的整型变量SSize的大小为8 
typedef int SType;  //定义结构体类型整型变量SType 

class Stack1   //自定义一个栈类 
{
   
private://定义可以在类外访问的私有成员
    SType data[SSize];//定义可以在类外访问的私有成员一维数组data 
    int Top;  //定义可以在类外访问的私有成员一个整型变量 

public:        //只能被该类的成员函数所访问的公有成员
    Stack1() {
    Top = 0; }  //构造一个空栈 
    ~Stack1() {
    }
    bool isEmpty() {
    return !
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值