亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python環形單鏈表的約瑟夫問題詳解

2020-02-15 23:03:26
字體:
來源:轉載
供稿:網友

題目:

一個環形單鏈表,從頭結點開始向后,指針每移動一個結點,就計數加1,當數到第m個節點時,就把該結點刪除,然后繼續從下一個節點開始從1計數,循環往復,直到環形單鏈表中只剩下了一個結點,返回該結點。

這個問題就是著名的約瑟夫問題。

代碼:

首先給出環形單鏈表的數據結構:

class Node(object): def __init__(self, value, next=0):  self.value = value  self.next = next # 指針class RingLinkedList(object): # 鏈表的數據結構 def __init__(self):  self.head = 0 # 頭部 def __getitem__(self, key):  if self.is_empty():   print 'Linked list is empty.'   return  elif key < 0 or key > self.get_length():   print 'The given key is wrong.'   return  else:   return self.get_elem(key) def __setitem__(self, key, value):  if self.is_empty():   print 'Linked list is empty.'   return  elif key < 0 or key > self.get_length():   print 'The given key is wrong.'   return  else:   return self.set_elem(key, value) def init_list(self, data): # 按列表給出 data  self.head = Node(data[0])  p = self.head # 指針指向頭結點  for i in data[1:]:   p.next = Node(i) # 確定指針指向下一個結點   p = p.next # 指針滑動向下一個位置  p.next = self.head def get_length(self):  p, length = self.head, 0  while p != 0:   length += 1   p = p.next   if p == self.head:    break  return length def is_empty(self):  if self.head == 0:   return True  else:   return False def insert_node(self, index, value):  length = self.get_length()  if index < 0 or index > length:   print 'Can not insert node into the linked list.'  elif index == 0:   temp = self.head   self.head = Node(value, temp)   p = self.head   for _ in xrange(0, length):    p = p.next   print "p.value", p.value   p.next = self.head  elif index == length:   elem = self.get_elem(length-1)   elem.next = Node(value)   elem.next.next = self.head  else:   p, post = self.head, self.head   for i in xrange(index):    post = p    p = p.next   temp = p   post.next = Node(value, temp) def delete_node(self, index):  if index < 0 or index > self.get_length()-1:   print "Wrong index number to delete any node."  elif self.is_empty():   print "No node can be deleted."  elif index == 0:   tail = self.get_elem(self.get_length()-1)   temp = self.head   self.head = temp.next   tail.next = self.head  elif index == self.get_length()-1:   p = self.head   for i in xrange(self.get_length()-2):    p = p.next   p.next = self.head  else:   p = self.head   for i in xrange(index-1):    p = p.next   p.next = p.next.next def show_linked_list(self): # 打印鏈表中的所有元素  if self.is_empty():   print 'This is an empty linked list.'  else:   p, container = self.head, []   for _ in xrange(self.get_length()-1): #    container.append(p.value)    p = p.next   container.append(p.value)   print container def clear_linked_list(self): # 將鏈表置空  p = self.head  for _ in xrange(0, self.get_length()-1):   post = p   p = p.next   del post  self.head = 0 def get_elem(self, index):  if self.is_empty():   print "The linked list is empty. Can not get element."  elif index < 0 or index > self.get_length()-1:   print "Wrong index number to get any element."  else:   p = self.head   for _ in xrange(index):    p = p.next   return p def set_elem(self, index, value):  if self.is_empty():   print "The linked list is empty. Can not set element."  elif index < 0 or index > self.get_length()-1:   print "Wrong index number to set element."  else:   p = self.head   for _ in xrange(index):    p = p.next   p.value = value def get_index(self, value):  p = self.head  for i in xrange(self.get_length()):   if p.value == value:    return i   else:    p = p.next  return -1            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品狠色婷| 精品国产一区二区三区久久| 国产精品欧美日韩久久| 91在线精品播放| 91日韩在线播放| 欧美黑人极品猛少妇色xxxxx| 精品少妇v888av| 亚洲欧美日韩精品| 亚洲国产高清福利视频| 久久这里只有精品99| 日韩欧美在线中文字幕| 一区二区三区精品99久久| 国内精品久久久久久久| 日本精品一区二区三区在线| 国产欧美一区二区三区久久人妖| 国产欧美一区二区三区在线看| 久久影视电视剧免费网站清宫辞电视| 中文字幕亚洲综合久久筱田步美| 久久中文久久字幕| 亚洲国产精品一区二区久| 日韩有码在线播放| 成人精品aaaa网站| 欧美日韩免费一区| 88国产精品欧美一区二区三区| 成人网欧美在线视频| 久久69精品久久久久久国产越南| 欧美最猛性xxxxx免费| 久久久久久网站| 国产精品香蕉国产| 国产精品久久久久久久美男| 66m—66摸成人免费视频| 一区二区欧美久久| 欧美大肥婆大肥bbbbb| 久久久久久九九九| 在线视频中文亚洲| 欧美性20hd另类| 日韩亚洲成人av在线| 日韩欧美在线播放| 91精品国产99| 久久久久久久久综合| 7777精品久久久久久| 国产亚洲精品美女| 亚洲欧洲在线播放| 91久久久久久| 日韩不卡在线观看| 精品国模在线视频| 日韩欧美在线播放| 欧美激情久久久久| 国产+成+人+亚洲欧洲| 亚洲天堂精品在线| 一本大道亚洲视频| 欧美黑人巨大精品一区二区| 69**夜色精品国产69乱| 国产精品女人久久久久久| 久久久久久国产精品美女| 国产精品日韩在线一区| 精品国产一区二区三区久久久狼| 欧美大片大片在线播放| 成人网址在线观看| 欧美疯狂xxxx大交乱88av| 国产精品爱久久久久久久| 97在线视频免费播放| 精品性高朝久久久久久久| 国产精品久久久久影院日本| 好吊成人免视频| 久热精品视频在线| 亚洲精品网站在线播放gif| 亚洲最大激情中文字幕| 欧美中文字幕视频在线观看| 777精品视频| 91午夜在线播放| 国产精品6699| 日韩成人免费视频| 亚洲美女免费精品视频在线观看| 91亚洲永久免费精品| 97在线视频免费| 国产亚洲精品va在线观看| 欧美性感美女h网站在线观看免费| 欧美激情高清视频| 日本午夜在线亚洲.国产| 久久的精品视频| 亚洲天堂第一页| 亚洲成人av在线播放| 亚洲国产精品嫩草影院久久| 亚洲va男人天堂| 国产精品久久久久久久久久免费| 国产精品www色诱视频| 精品久久久久久中文字幕大豆网| 日韩欧美在线国产| 成人免费黄色网| 2019av中文字幕| 北条麻妃在线一区二区| 亚洲午夜性刺激影院| 久久精品视频播放| 91色中文字幕| 精品毛片网大全| 亚洲乱亚洲乱妇无码| 亚洲精品99久久久久中文字幕| 国产91精品久久久久久| 日韩精品视频免费专区在线播放| 亚洲精品国产综合区久久久久久久| 亚洲free嫩bbb| 成人情趣片在线观看免费| 欧美久久久精品| 国产精品v日韩精品| 午夜精品一区二区三区在线视| 久久综合久久美利坚合众国| 久久久精品美女| 日韩激情av在线播放| 在线色欧美三级视频| 成人久久精品视频| 亚洲人线精品午夜| 久久精品福利视频| 亚洲一区二区三区毛片| 久久成人综合视频| 成人网页在线免费观看| 亚洲丝袜av一区| 国产精品xxx视频| 777777777亚洲妇女| 日韩电影在线观看中文字幕| 国产亚洲精品va在线观看| 有码中文亚洲精品| 九九视频直播综合网| 91视频免费网站| 亚洲毛茸茸少妇高潮呻吟| 国产午夜精品免费一区二区三区| 欧美性69xxxx肥| 精品视频一区在线视频| 伊人青青综合网站| 亚洲精品成人久久久| 日韩精品黄色网| 91国产中文字幕| 久久久精品日本| 欧美激情精品久久久久久久变态| 成人欧美一区二区三区在线| 日韩欧美国产高清91| 亚洲午夜性刺激影院| 欧美午夜性色大片在线观看| 国产美女精彩久久| 久久九九国产精品怡红院| 日韩欧美视频一区二区三区| 中文字幕久热精品在线视频| 久久久国产成人精品| 精品国产精品三级精品av网址| 亚洲成人激情在线| 中文字幕v亚洲ⅴv天堂| 欧美日韩成人精品| 日韩风俗一区 二区| 日韩性xxxx爱| 日本国产高清不卡| 久久久久女教师免费一区| 另类专区欧美制服同性| 日韩成人网免费视频| 亚洲图片在线综合| 97在线视频免费| 久久九九精品99国产精品| 中文字幕亚洲欧美在线| 亚洲第一视频网站| 欧美重口另类videos人妖| 国内成人精品一区| 国产成人久久精品| 亚洲精品视频久久| 亚洲福利在线看| 日本精品久久久久久久|