資料結構與演算法筆記 lesson 16 八皇后問題

2021-07-25 06:43:55 字數 1008 閱讀 4236

在8×8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。

#includeint count = 0;

int notdanger(int row, int j, int(*chess)[8])

} //判斷左上方

for (i = row, k = j; i >= 0 && k >= 0; i--, k--) }

//判斷右下方

for (i = row, k = j; i <8 && k<8; i++, k++) }

//判斷右上方

for (i = row, k = j; i >=0&& k<8; i--, k++) }

//判斷左下方

for (i = row, k = j; i <8 && k>=0; i++, k--) }

if (flag1 || flag2 || flag3 || flag4 || flag5)

else }

//row :表示起始行 n:表示列數 (*chess)[8]: 表示指向棋盤每一行的指標

void eightqueen(int row, int n, int(*chess)[8])

} if (8 == row)

printf("\n");

} printf("\n");

count++;

} else

*(*(chess2 + row) + j) = 1;

eightqueen(row+1 , n, chess2);

}} }

}int main()

} eightqueen(0,8,chess);

printf("總共有%d種\n", count);

return 0;

}

資料結構與演算法筆記 lesson 13 佇列

是只允許在一端繼續插入操作,而在另一端進行刪除操作的線性表。是一種先進先出 fifo 的線性表。輸入快取區接收鍵盤的輸入就是按佇列的形式輸入和輸出的 棧一般用順序表來實現,佇列常用鏈來實現 typedef struct qnode qnode queueprt typedef struct link...

資料結構與演算法 筆記 資料結構與演算法筆記 棧

以前學習的時候都沒怎麼好好的做過筆記,總是東記一點,西寫一點,甚至都不做筆記,導致後面找的時候找不到,最後還是求助搜尋引擎浪費掉很多時間。好腦筋不如個爛筆頭呀。這次又重新學習python的資料結構及演算法 中國mooc上的公開課 就好好做個筆記吧。棧是一種只能在一端進行插入和刪除的線性資料結構。一般...

資料結構與演算法筆記

main.c檔案 主函式檔案 include seqlist.h 包含的標頭檔案 include main.h void menu intmain break case2 printf 輸入要插入的元素 while scanf s d item item 1 break case3 printf d...