C語言及程式設計高階例程 26 回溯溯法問題求解

2021-07-03 10:22:51 字數 748 閱讀 5830

賀老師教學鏈結

c語言及程式設計高階

本課講解

8皇后問題實現**

#include 

#include

#include

void nqueens(int *x, int n); /*求解n皇后問題*/

int place(int *x, int k); /*判斷是否可以在第k行第x[k]列擺放皇后*/

void printsolution(int *x, int n); /*輸出求解結果*/

int main()

/*如果乙個皇后能放在第k行第x[k]列,則返回真(1),否則返回假(0)*/

int place(int *x, int k)

/*能執行下一句,說明在第k行第x[k]列擺放皇后,不會互相攻擊*/

return1;}

/*求解在n×n的棋盤上,放置n個皇后,使其不能互相攻擊*/

void nqueens(int *x, int n)

}else

/*對應x[k]>n的情形,這一行已經沒有再試的必要,回溯到上一行*/

k--; /*到迴圈開始執行x[k]++後,上一行在原第x[k]列的下1列開始考察*/

}}/*輸出求解結果*/

void printsolution(int *x, int n)

printf("\n");

}printf("\n");

}

C語言及程式設計高階例程 19 鍊錶應用

賀老師教學鏈結 c語言及程式設計高階 本課講解 猴子選大王 include include struct monkey int main else p2 next head 最後乙隻再指向第一只,成了乙個圓圈 下面要開始數了 p1 head for i 1 inext 圍成圈的,可能再開始從第一隻數...

C語言及程式設計高階例程 6 遞迴法問題求解

賀老師教學鏈結 c語言及程式設計高階 本課講解 求n include long fact int n int main 輸入乙個正整數n,反序輸出其各位數 include void f int n int main 例 十進位制轉二進位制的遞迴演算法 include void f int n int...

C語言及程式設計高階例程 24 查詢問題及其求解

賀老師教學鏈結 c語言及程式設計高階 本課講解 順序查詢 include define size 10 int main 也可以通過鍵盤輸入等方式給出資料 int i int key key表示待查詢資料 int index 1 用index表示查詢結果 關鍵字key出現的位置 printf inp...