線性表經典-選首領問題

正好這幾天在看數據結構,覺得鏈表應用挺廣的,特寫一實例。

問題描述:

選首領。N個遊戲者圍成一圈,從第一個開始順序報數1,2,3.凡報到3者退出圈子,最後留在圈中的人爲首領。

思路:

創建一個包含N個節點的單循環鏈表來模擬N個人圍成的圈。節點的數據域存放遊戲者的編號。

在程序中,以刪除節點模擬人退出圈子的處理,整型變量c(初始值爲1)用於計數,指針變量p的初始值爲head,運行時,從p所指的節點開始計數,p沿鏈表中的指針每次向後指一個節點,c值隨p指針的移動相應地遞增。當c計數到2時,就刪除下一個節點,然後將c置爲0。爲了避免將剩下的最後一個節點刪除,另外設置一個計數器k,其初值爲參加遊戲的人數。每當刪除一個節點時,k值就減1,當k等於1時,首領就選出來了!

代碼:

截圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章