python雙向鏈表原理與實現(xiàn)方法詳解-創(chuàng)新互聯(lián)

本文實例講述了python雙向鏈表原理與實現(xiàn)方法。分享給大家供大家參考,具體如下:

蘆淞網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),蘆淞網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為蘆淞上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的蘆淞做網(wǎng)站的公司定做!

雙向鏈表

一種更復(fù)雜的鏈表是“雙向鏈表”或“雙面鏈表”。每個節(jié)點有兩個鏈接:一個指向前一個節(jié)點,當(dāng)此節(jié)點為第一個節(jié)點時,指向空值;而另一個指向下一個節(jié)點,當(dāng)此節(jié)點為最后一個節(jié)點時,指向空值。

操作

  • is_empty() 鏈表是否為空
  • length() 鏈表長度
  • travel() 遍歷鏈表
  • add(item) 鏈表頭部添加
  • append(item) 鏈表尾部添加
  • insert(pos, item) 指定位置添加
  • remove(item) 刪除節(jié)點
  • search(item) 查找節(jié)點是否存在

實現(xiàn)

class Node(object):
  """雙向鏈表節(jié)點"""
  def __init__(self, item):
    self.item = item
    self.next = None
    self.prev = None
class DLinkList(object):
  """雙向鏈表"""
  def __init__(self):
    self.__head = None
  def is_empty(self):
    """判斷鏈表是否為空"""
    return self.__head == None
  def length(self):
    """返回鏈表的長度"""
    cur = self.__head
    count = 0
    while cur != None:
      count += 1
      cur = cur.next
    return count
  def travel(self):
    """遍歷鏈表"""
    cur = self.__head
    while cur != None:
      print cur.item,
      cur = cur.next
    print ""
  def add(self, item):
    """頭部插入元素"""
    node = Node(item)
    if self.is_empty():
      # 如果是空鏈表,將_head指向node
      self.__head = node
    else:
      # 將node的next指向_head的頭節(jié)點
      node.next = self.__head
      # 將_head的頭節(jié)點的prev指向node
      self.__head.prev = node
      # 將_head 指向node
      self.__head = node
  def append(self, item):
    """尾部插入元素"""
    node = Node(item)
    if self.is_empty():
      # 如果是空鏈表,將_head指向node
      self.__head = node
    else:
      # 移動到鏈表尾部
      cur = self.__head
      while cur.next != None:
        cur = cur.next
      # 將尾節(jié)點cur的next指向node
      cur.next = node
      # 將node的prev指向cur
      node.prev = cur
  def search(self, item):
    """查找元素是否存在"""
    cur = self.__head
    while cur != None:
      if cur.item == item:
        return True
      cur = cur.next
    return False

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁名稱:python雙向鏈表原理與實現(xiàn)方法詳解-創(chuàng)新互聯(lián)
分享URL:http://www.muchs.cn/article48/dssiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化域名注冊、面包屑導(dǎo)航商城網(wǎng)站、品牌網(wǎng)站建設(shè)、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)