線性表應用--Josephus問題的解法(Python 版)
阿新 • • 發佈:2018-09-01
pytho 人的 clas 基於 列表 設有 return 所有 下一個
線性表應用
--Josephus問題的解法(Python 版)
Josephus問題描述:假設有n個人圍坐一圈,現在要求從第k個人開始報數,報到第m個數的人退出。然後從下一個人開始繼續報數並按照相同的規則退出,直到所有人退出。要求按順序輸各出列人的編號。
-
基於數組概念解法
1. 建立一個包含n個人的表
2. 找到第k個人,從那裏開始
3. 處理過程中采用吧相應元素修改為0的方式表示已經退出,反復做:
4. 數m個(尚在坐的)人,遇到表的末端轉回到下標0繼續
4. 把表示第m個人的表元素修改為0
5. n個人出列表示結束1 def josephus(n,k,m):
-
基於順序表的解法
利用列表的性質,彈出報數為m的人
1 # 利用列表的性質,彈出報數為m的人 2 3 def josephus_L(n,k,m):
-
基於循環單鏈表的解法
線性表應用--Josephus問題的解法(Python 版)