最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python單鏈表的簡單實現(xiàn)方法

 更新時間:2014年09月23日 16:36:03   投稿:shichen2014  
這篇文章主要介紹了Python單鏈表的簡單實現(xiàn)方法,包括定義所需的字段及具體實現(xiàn)代碼的分析,需要的朋友可以參考下

本文實例講述了Python單鏈表的簡單實現(xiàn)方法,分享給大家供大家參考。具體方法如下:

通常來說,要定義一個單鏈表,首先定義鏈表元素:Element.它包含3個字段:

list:標(biāo)識自己屬于哪一個list
datum:改元素的value
next:下一個節(jié)點的位置

具體實現(xiàn)代碼如下:

class LinkedList(object):
  
  class Element(object):
    
    def __init__(self,list,datum,next): 
      self._list = list
      self._datum = datum 
      self._next = next

    def getDatum(self): 
      return self._datum

    datum = property(
      fget = lambda self: self.getDatum())

    def getNext(self):
      return self._next

    next = property(
      fget = lambda self: self.getNext())

  def __init__(self):

    self._head = None
    self._tail = None
  def getHead(self):
    return self._head 
  head = property(
    fget = lambda self: self.getHead()) 
  def prepend(self,item):
    tmp = self.Element (self,item,self._head)
    if self._head is None:
      self._tail = tmp 
    self._head = tmp 

  def insert(self, pos, item):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > pos-1:
      return -1
    tmp = self.Element(self, item, p._next)
    p._next = tmp
    return 1
  def getItem(self, pos):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > post-1:
      return -1
    return p._datum
  def delete(self, pos):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > post-1:
      return -1
    q = p._next
    p._nex = q._next
    datum = p._datum
    return datum
  def setItem(self, pos, item):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    if p == None or i > post-1:
      return -1
    p._datum = item
    return 1
  def find(self, pos, item):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      if p._datum == item:
        return 1
      p = p._next
      i += 1
    return -1
  def empty(self):
    if self._head == None:
      return 1
    return 0
  def size(self):
    i = 0
    p = self._head
    while p != None and i < pos -1:
      p = p._next
      i += 1
    return i

  def clear(self):
    self._head = None
    self._tail = None

test = LinkedList()
test.prepend('test0')
print test.insert(1, 'test')
print test.head.datum
print test.head.next.datum

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

最新評論

延边| 永安市| 汶上县| 清徐县| 灯塔市| 若羌县| 博湖县| 麻城市| 青州市| 揭东县| 吉林省| 牟定县| 祁阳县| 新沂市| 高台县| 札达县| 河源市| 云霄县| 裕民县| 锡林浩特市| 增城市| 克山县| 汉寿县| 手游| 高尔夫| 兴化市| 文安县| 徐州市| 光泽县| 榆树市| 多伦县| 广昌县| 靖江市| 五家渠市| 新竹市| 玉门市| 潮州市| 渑池县| 申扎县| 鲁甸县| 潜江市|