資料結構 八皇后演算法

2021-06-21 15:02:27 字數 517 閱讀 6162

八皇后的基本要求是這樣的:在乙個8*8的矩陣上面放置8個物體,乙個矩陣點只允許放置乙個物體,任意兩個點不能在一行上,也不能在一列上,不能在一條左斜線上,當然也不能在一條右斜線上。

參考網上資料改寫

**如下:

#include#include#include#includeusing namespace std;

#define n 8 // 棋盤的格數

int chess[n][n] = ; // 棋盤

int numofway = 0; // 有多少種放法

int iscanput(int row, int col) // 確定某一格能不能放

for(j = 0; j < n; j++)

if(((i-row)==(j-col)||(i-row)==(col-j))&&chess[i][j]==1) // 對角線上有的

}} return 1;

}void print_chess()

{ for (int i=0;i

資料結構演算法 八皇后問題

八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848 年提出 在 88 格的西洋棋上擺放八個皇后,使其不能互相攻擊,即 任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法 92 理論上應該建立乙個二維陣列來表示棋盤,但是實際上可以通...

資料結構與演算法 遞迴 八皇后

八皇后問題介紹 八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即 任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。由於西洋棋是乙個8 8的棋盤,而且棋盤中總共需要...

資料結構 八皇后問題

八皇后問題簡述 即求8 8的棋盤的所有合法布局,所為合法布局就是 棋盤上共擺放八個棋子,使得每兩個棋子都不在棋盤上的同一行 或者同一列 或同一對角線。在查詢所有情況過程中利用回溯法,回溯法的基本做法是搜尋,或是一種組織得井井有條的,能避免不必要搜尋的窮舉式搜尋法。這種方法適用於解一些組合數相當大的問...