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

Python單鏈表的簡單實現方法

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

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

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

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

具體實現代碼如下:

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程序設計有所幫助。

相關文章

最新評論

临澧县| 新晃| 德惠市| 韩城市| 孟村| 洛宁县| 泉州市| 卓资县| 泗阳县| 昌吉市| 米脂县| 连州市| 全南县| 夏河县| 吉林市| 屯留县| 祁阳县| 武强县| 南昌县| 托里县| 通榆县| 汕尾市| 遂溪县| 十堰市| 获嘉县| 连江县| 南丹县| 巴林右旗| 合肥市| 讷河市| 阿图什市| 石台县| 无棣县| 南和县| 澄江县| 霍山县| 藁城市| 南川市| 阳原县| 武强县| 正蓝旗|