熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構之單鏈表基本運算的實現[18]

2022-06-13   來源: 數據結構 

  【例】用鏈表求解約瑟夫問題

  算法思路由於約瑟夫問題是n個人圍坐一圈所以采用循環鏈表實現又由於報數時可能循環到開始所以采用不帶頭結點的循環鏈表結構

  算法步驟

  ()在不帶頭結點的循環鏈表中查找第s個結點用p作為第s個結點的指針pre指向p 的前驅;

  ()從p所指的結點開始計數查找第m個結點;

  ()輸出該結點元素值;

  () 刪除該結點同時將該結點下一結點指針作為當前指針即p指針重復到步驟()直到鏈表中所有結點都被刪除完為止

  算法如下

  int josephus_ LinkList (LinkList josephus_Link int s int m)

  { /*求約瑟夫問題的出列元素序列入口參數已經存放數據的鏈表頭指針起始位置s數m 出口參數表示成功表示表中沒有元素*/

  LinkList ppre; /*p指向當前結點pre指向其前驅結點*/

  int count;

  if ( ! josephus_Link)

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23072.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.