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

首頁 > 編程 > Python > 正文

淺談Python單向鏈表的實現

2020-01-04 17:53:43
字體:
來源:轉載
供稿:網友
本文給大家簡單介紹了下鏈表的知識,然后用Python模擬一下單鏈表,比較簡單,初學者可以參考參考,大神可以給我點改進意見
 

鏈表由一系列不必在內存中相連的結構構成,這些對象按線性順序排序。每個結構含有表元素和指向后繼元素的指針。最后一個單元的指針指向NULL。為了方便鏈表的刪除與插入操作,可以為鏈表添加一個表頭。

淺談Python單向鏈表的實現

刪除操作可以通過修改一個指針來實現。

淺談Python單向鏈表的實現

插入操作需要執行兩次指針調整。

淺談Python單向鏈表的實現

1. 單向鏈表的實現

1.1 Node實現

    每個Node分為兩部分。一部分含有鏈表的元素,可以稱為數據域;另一部分為一指針,指向下一個Node。

class Node():  __slots__=['_item','_next']  #限定Node實例的屬性  def __init__(self,item):    self._item=item    self._next=None   #Node的指針部分默認指向None  def getItem(self):    return self._item  def getNext(self):    return self._next  def setItem(self,newitem):    self._item=newitem  def setNext(self,newnext):    self._next=newnext

1.2 SinglelinkedList的實現

class SingleLinkedList():   def __init__(self):    self._head=None  #初始化鏈表為空表    self._size=0

1.3 檢測鏈表是否為空

def isEmpty(self):  return self._head==None 

1.4 add在鏈表前端添加元素

def add(self,item):  temp=Node(item)  temp.setNext(self._head)  self._head=temp

1.5 append在鏈表尾部添加元素

def append(self,item):  temp=Node(item)  if self.isEmpty():    self._head=temp  #若為空表,將添加的元素設為第一個元素  else:    current=self._head    while current.getNext()!=None:      current=current.getNext()  #遍歷鏈表    current.setNext(temp)  #此時current為鏈表最后的元素  

1.6 search檢索元素是否在鏈表中

def search(self,item):  current=self._head  founditem=False  while current!=None and not founditem:    if current.getItem()==item:      founditem=True    else:      current=current.getNext()  return founditem

1.7 index索引元素在鏈表中的位置

def index(self,item):  current=self._head  count=0  found=None  while current!=None and not found:    count+=1    if current.getItem()==item:      found=True    else:      current=current.getNext()  if found:    return count  else:    raise ValueError,'%s is not in linkedlist'%item

1.8 remove刪除鏈表中的某項元素

def remove(self,item):  current=self._head  pre=None  while current!=None:    if current.getItem()==item:      if not pre:        self._head=current.getNext()      else:        pre.setNext(current.getNext())      break    else:      pre=current      current=current.getNext()

1.9 insert鏈表中插入元素

def insert(self,pos,item):  if pos<=1:    self.add(item)  elif pos>self.size():    self.append(item)  else:    temp=Node(item)    count=1    pre=None    current=self._head    while count<pos:      count+=1      pre=current      current=current.getNext()    pre.setNext(temp)    temp.setNext(current)

全部代碼

class Node():  __slots__=['_item','_next']  def __init__(self,item):    self._item=item    self._next=None  def getItem(self):    return self._item  def getNext(self):    return self._next  def setItem(self,newitem):    self._item=newitem  def setNext(self,newnext):    self._next=newnext     class SingleLinkedList():   def __init__(self):    self._head=None #初始化為空鏈表  def isEmpty(self):    return self._head==None  def size(self):    current=self._head    count=0    while current!=None:      count+=1      current=current.getNext()    return count  def travel(self):    current=self._head    while current!=None:      print current.getItem()      current=current.getNext()  def add(self,item):    temp=Node(item)    temp.setNext(self._head)    self._head=temp   def append(self,item):    temp=Node(item)    if self.isEmpty():      self._head=temp  #若為空表,將添加的元素設為第一個元素    else:      current=self._head      while current.getNext()!=None:        current=current.getNext()  #遍歷鏈表      current.setNext(temp)  #此時current為鏈表最后的元素  def search(self,item):    current=self._head    founditem=False    while current!=None and not founditem:      if current.getItem()==item:        founditem=True      else:        current=current.getNext()    return founditem  def index(self,item):    current=self._head    count=0    found=None    while current!=None and not found:      count+=1      if current.getItem()==item:        found=True      else:        current=current.getNext()    if found:      return count    else:      raise ValueError,'%s is not in linkedlist'%item         def remove(self,item):    current=self._head    pre=None    while current!=None:      if current.getItem()==item:        if not pre:          self._head=current.getNext()        else:          pre.setNext(current.getNext())        break      else:        pre=current        current=current.getNext()             def insert(self,pos,item):    if pos<=1:      self.add(item)    elif pos>self.size():      self.append(item)    else:      temp=Node(item)      count=1      pre=None      current=self._head      while count<pos:        count+=1        pre=current        current=current.getNext()      pre.setNext(temp)      temp.setNext(current) if __name__=='__main__':  a=SingleLinkedList()  for i in range(1,10):    a.append(i)  print a.size()  a.travel()  print a.search(6)  print a.index(5)  a.remove(4)  a.travel()  a.insert(4,100)  a.travel()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91九色视频导航| 一本色道久久综合狠狠躁篇的优点| 国产精品久久久久久久久影视| 亚洲一区二区免费| 亚洲欧美在线x视频| 亚洲成在人线av| 中文字幕亚洲欧美一区二区三区| 国产精品国产三级国产aⅴ9色| 欧美激情一区二区三区成人| 精品呦交小u女在线| 国产精品视频免费在线| 亚洲社区在线观看| 91精品视频免费| 亚洲91精品在线观看| 成人精品在线视频| 疯狂蹂躏欧美一区二区精品| 91美女片黄在线观| 亚洲欧美激情一区| 久久精品一区中文字幕| 中文字幕欧美日韩va免费视频| 亚洲视频999| 国产日韩精品综合网站| 福利一区视频在线观看| 亚洲欧美综合精品久久成人| 欧美大全免费观看电视剧大泉洋| 黄色精品一区二区| 欧美成人一区在线| 成人夜晚看av| 亚洲精品电影在线观看| 欧美激情视频播放| 久久精品美女视频网站| 国产精品第一视频| 欧美最猛性xxxxx(亚洲精品)| 久久亚洲春色中文字幕| 97在线视频免费播放| 成人综合国产精品| 日韩国产高清污视频在线观看| 美女av一区二区| 日本最新高清不卡中文字幕| 操日韩av在线电影| 韩日欧美一区二区| 日韩视频在线观看免费| 国产精品精品视频一区二区三区| 久久99青青精品免费观看| 色综合视频网站| 国产91精品高潮白浆喷水| 欧美国产日产韩国视频| 成人h猎奇视频网站| 国产色综合天天综合网| 欧美激情精品久久久久久久变态| 九九热精品视频在线播放| 亚洲精品日韩激情在线电影| 国产精品久久久精品| 黑人巨大精品欧美一区二区免费| 91精品国产综合久久久久久蜜臀| 成人午夜激情免费视频| 日本精品久久中文字幕佐佐木| 亚洲高清免费观看高清完整版| 亚洲色无码播放| 久久精品夜夜夜夜夜久久| 国产精品久久久久久亚洲调教| 欧美午夜影院在线视频| 国产做受高潮69| 亚洲91精品在线观看| 国产成人精品av| 日韩精品在线影院| 国产99久久精品一区二区永久免费| 成人免费大片黄在线播放| 日韩福利视频在线观看| 成人做爰www免费看视频网站| 茄子视频成人在线| 国产精品美乳在线观看| 美女视频黄免费的亚洲男人天堂| 亚洲男人天堂2019| 久久精品亚洲94久久精品| 91中文字幕在线观看| 亚洲性生活视频在线观看| 91在线免费看网站| 国产91网红主播在线观看| 欧美一级黑人aaaaaaa做受| 亚洲男人的天堂在线| 亚洲成人黄色在线| 日韩av在线导航| 欧美一区三区三区高中清蜜桃| 国产精品久久网| 欧美精品videos| 97久久超碰福利国产精品…| 91久久中文字幕| 最近的2019中文字幕免费一页| 揄拍成人国产精品视频| 欧美中文在线免费| 久久精品中文字幕免费mv| 日韩成人xxxx| 91亚洲va在线va天堂va国| 欧美激情性做爰免费视频| 精品国产91乱高清在线观看| 亚洲精品福利在线观看| 亚洲视频免费一区| 国产一区二区美女视频| 久久精品国产69国产精品亚洲| 欧美精品久久久久久久| 国产精品成熟老女人| 亚洲成人av中文字幕| 亚洲精品国精品久久99热一| 久国内精品在线| 欧美日韩国产一区二区三区| 亚洲第一免费网站| 日韩中文视频免费在线观看| 日韩久久午夜影院| 国产亚洲欧美aaaa| 国产亚洲精品久久| 亚洲精品第一国产综合精品| 中文字幕亚洲字幕| 国产中文字幕日韩| 国产精品久久久久福利| 清纯唯美亚洲激情| 日韩免费在线观看视频| 国产在线拍偷自揄拍精品| 欧美性xxxxxxx| 亚洲天堂久久av| 亚洲视频第一页| 韩剧1988在线观看免费完整版| 国精产品一区一区三区有限在线| 久久亚洲精品一区二区| 亚洲无限乱码一二三四麻| 1769国内精品视频在线播放| 美乳少妇欧美精品| 日韩成人在线电影网| 久久久国产一区二区三区| 久久久久久久国产精品视频| 狠狠色狠狠色综合日日小说| 播播国产欧美激情| 97视频网站入口| 日韩精品在线看| 91高清免费视频| 亚洲激情视频在线观看| 国产精品xxxxx| 日韩在线一区二区三区免费视频| 亚洲理论电影网| 精品久久久久久久久久久久| 国产在线视频一区| 亚洲精品美女久久| 在线一区二区日韩| 92版电视剧仙鹤神针在线观看| 夜夜嗨av色一区二区不卡| 欧美裸体xxxx极品少妇| 久久精品91久久香蕉加勒比| 欧美精品videos另类日本| 国产精品伦子伦免费视频| 欧美夫妻性生活视频| 亚洲最大av在线| www日韩中文字幕在线看| 亚洲天堂av网| 欧美二区在线播放| 久久久久久国产三级电影| 都市激情亚洲色图| 日韩最新中文字幕电影免费看| 久久久久久久久久久久av| 国产精品黄色影片导航在线观看| 日av在线播放中文不卡| 日韩成人激情视频| 欧美大奶子在线| 日韩成人中文电影| 日本最新高清不卡中文字幕|