在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...