迴圈連結串列(約瑟夫問題)--python實現
class Node:
def __init__(self, value=None, next_addr=None):
self._value = value
self._next_addr = next_addr
@property
def next_addr(self):
return self._next_addr
@next_addr.setter
def next_addr(self, addr):
self._next_addr = addr
@property
def value(self):
return self._value
@value.setter
def value(self, value):
self._value = value
# 迴圈實現
# def check(first):
# temp = first
# i = 1
# while temp != temp.next_addr.next_addr:
# if i%2 == 0:
# temp.next_addr = temp.next_addr.next_addr
# temp = temp.next_addr
# i += 1
# else:
# temp = temp.next_addr
# i += 1
#
# return temp.value, temp.next_addr.value
# 遞迴實現
def check(first):
temp = first
return s(temp, 1)
def s(node, count):
temp = node
if temp == temp.next_addr.next_addr:
return temp.value, temp.next_addr.value
if count % 2 == 0:
print(temp.next_addr.value) # 刪除的值
temp.next_addr = temp.next_addr.next_addr
temp = temp.next_addr
return s(temp, count+1)
else:
temp = temp.next_addr
return s(temp, count+1)
if __name__ == '__main__':
j = Node(1)
item = j
for i in range(2, 42):
item.next_addr = Node(i)
item = item.next_addr
item.next_addr = j
print(check(j))
相關文章
- JS資料結構第三篇---雙向連結串列和迴圈連結串列之約瑟夫問題JS資料結構
- 約瑟夫環(Josephus)問題--報數遊戲(連結串列)遊戲
- java環形連結串列約瑟夫環問題筆記Java筆記
- 約瑟夫問題
- 約瑟夫環問題
- 牛客題霸NC132環形連結串列的約瑟夫問題Java題解Java
- 約瑟夫環(約瑟夫問題)求最後出列的人數
- 約瑟夫問題(丟手絹問題)
- 猴子選大王,約瑟夫問題
- 連結串列-迴圈連結串列
- 教你如何運用python/golang實現迴圈連結串列PythonGolang
- 單向迴圈連結串列的實現
- 用Python實現約瑟夫環演算法Python演算法
- 約瑟夫環問題 猴子選大王問題
- 連結串列4: 迴圈連結串列
- 約瑟夫生者死者遊戲問題遊戲
- 約瑟夫環(陣列實現)陣列
- 迴圈連結串列
- 單向迴圈連結串列
- 單連結串列建立連結串列出現問題
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 單鏈迴圈連結串列(初版
- zcmu1862——zbj的狼人殺(約瑟夫環問題)
- UVALive 3882--And Then There Was One+約瑟夫環問題變形
- 資料結構之迴圈連結串列資料結構
- Python實現單連結串列Python
- 約瑟夫環遊戲遊戲
- 單向迴圈連結串列大綱
- 約瑟夫環(超好的程式碼存檔)--19--約瑟夫環--LeetCode面試題62(圓圈最後剩下的數字)LeetCode面試題
- 洛谷題單指南-線性表-P1996 約瑟夫問題996
- 連結串列找環(python實現)Python
- 連結串列-單連結串列實現
- 單向迴圈連結串列的介面程式
- C語言陣列實現約瑟夫環出圈問題 程式碼詳細註釋 簡單易懂C語言陣列
- 迴圈單連結串列建構函式、解構函式C++實現函式C++
- 設計單向迴圈連結串列的介面
- leetcode演算法題解(Java版)-7-迴圈連結串列LeetCode演算法Java
- 約瑟夫環(vector類解決)