国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Python > 正文

python版本單鏈表實現代碼

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

今天看了一下數據結構的書,發現其實數據結構沒有幾種,線性表,數組,字符串,隊列和棧,等等,其實是一回事,然后就是樹結構,圖結構。數據結構的理論并不難,主要是要自己寫一下這些數據結構以及對應的基本的操作方法,這樣就能夠更快的提高。

這一篇blog寫一下線性表。

線性表:分為順序表和鏈表

一、順序表

順序表就是相對于表中的數據,地址也是順序的,所以可以隨機存取。但是在操作插入和刪除元素的時候,由于要滿足地址的連續性,所以要移動很多的元素位置,因此,插入或者刪除一個順序表的元素的時間復雜度是o(n)。很多時候,在對順序表做合并的時候,需要先對表中的元素進行排序,然后再進行處理,這樣可以避免每次都從頭進行查詢。

二、鏈表

鏈表就失去了順序表的隨機存取特點,即每次從中取一個元素都要從頭開始找,這樣耗費了一些時間,時間復雜度為o(n);但是在做插入和刪除,以及兩個鏈表合并的時候,就方便了很多,只需要做一點指針修改就可以了。

鏈表中的每一個元素節點都包含了數據部分和下一個節點的指針。一般在鏈表的頭部附設一個頭結點,而且頭結點一般不存儲數據,而是存放一些長度等附加信息,或者不存儲。

在很多語言中沒有指針這一概念,而有數組的概念,比如java和python,java中的數組還要求定義數組的類型,也就是說必須都是同一類型的數據,而python則沒有要求,所以python的list更貼近鏈表的真正含義。這種用數組描述的鏈表叫做靜態鏈表。使用靜態鏈表來描述鏈表對此類語言要方便很多了,本身這些語言都提供了內置類來處理鏈表。

除此之外,還有循環鏈表,雙向鏈表(解決了無法向前搜索的問題,但是在修改指針的時候需要有更多的操作)。

# -*- coding=utf-8 -*-# 這個例子是Python版本的單鏈表class Node(object):  def __init__(self, value, next=0):    self.value = value    self.next = next # 指針class LinkedList(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 # 指針指向頭結點    print p, self.head    for i in data[1:]:      p.next = Node(i) # 確定指針指向下一個結點      p = p.next # 指針滑動向下一個位置    print self.head.next.next  def get_length(self):    length = 0    p = self.head    while p != 0: # 0 值就是Node結點中默認的 0 值,表示下一個結點沒有了,即沒有為其賦值      length += 1      p = p.next    return length  def is_empty(self):    if self.head == 0:      return True    else:      return False  def insert_node(self, index, value):    if index < 0 or index > self.get_length():      print 'Can not insert node into the linked list.'    elif index == 0:      temp = self.head      self.head = Node(value, temp)    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:      temp = self.head      self.head = temp.next    elif index == self.get_length():      p = self.head      for i in xrange(self.get_length()-2):        p = p.next      p.next = 0    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): # 將鏈表置空    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.value  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 -1l = LinkedList()print "The length of linked list now is: ", l.get_length()print l.is_empty()l.init_list([1, 5, 12, "fjd", 45, 999])print "The length of linked list now is: ", l.get_length()print l.is_empty()l.insert_node(4, 100)l.insert_node(6, "cecil")l.show_linked_list()print "The value of index 0 is: ", l.get_elem(0)l.set_elem(0,1000)l.show_linked_list()print "the index of *** is: ", l.get_index(1009)print "The length of linked list now is: ", l.get_length()l.delete_node(3)#l.clear_linked_list()l.show_linked_list()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
九九热视频免费在线观看| 国产网站观看9久| 精品麻豆国产| 91涩漫在线观看c| 99爱在线观看| 亚洲最新永久在线观看| 羞羞视频在线观看免费| 久热精品免费视频| 国产原创在线播放| 国产精品区一区二| av在线你懂的| 国产天堂资源| h网站免费在线观看| 国产九色在线| 国产高潮av| 免费看成年人视频在线观看| 最新国产在线精品91尤物| 992tv在线观看在线播放| 久久国产热视频| 18激情网站| 午夜免费福利在线观看| av在线网页| 国产白浆在线| 国产视频2区| 成人免费一区二区三区牛牛| 伊人中文字幕在线| 国产黄色在线看| 国产免费一级片| 九九视频在线播放| 国产成人天天5g影院| 欧美日韩在线视频免费观看 | 午夜免费视频在线国产| 亚洲wwwwww| av高清资源| 国产精品蜜臀| 国产区在线观看| 国产一区二区三区不卡在线| 九九热在线播放| 久久精品最新免费国产成人| 一本大道五月香蕉| 亚洲综合激情六月婷婷在线观看| 国产亚av手机在线观看| 激情网站在线| 国产美女高潮一区二区三区| 黄色国产网站在线播放| 青青草在线播放| 九九热在线播放| 国产麻豆视频| 国产成人综合美国十次| 国产日韩网站| 18激情网站| 亚洲精品一区中文字幕电影| 在线观看中文字幕一区| 天堂网中文在线| 成av人免费青青久| 五月婷婷在线视频| 91社区在线观看| 18av在线播放| 老鸭窝av在线| 最近最好的中文字幕2019免费 | 国产蜜臀av在线播放| 九九在线免费视频| 国产亚洲精品自在线观看| 国产黄色小视频| av在线第一页| 国产在线高潮| 伊人伊人av电影| 九七电影韩国女主播在线观看| 尤物免费看在线视频| 国产人成在线视频| 色吊丝av中文字幕| 国产小黄视频| 久久精品免视着国产成人| 国产精品久久久久久精| 九色视频网站| 中文视频在线| 国产精选在线视频拍拍拍| 在线观看的av| 国产丝袜自拍| 国产免费视频| 就爱干草视频| 日本视频二区| 在线国产91| 国产高清一级片| 青草视频在线播放| 国产爆初菊在线观看免费视频网站| 免费a在线看| 亚洲欧美自拍另类| 69国产精品视频| 中文字幕欧美日韩在线不卡| 四虎国产精品永久| 天天操夜夜做| 日本不卡影院| 久青青在线观看视频国产| 色悠久久久久综合网小说| 一区二区精品区| 91视频久色| 在线中文av| av文字幕在线观看| 国产精品免费视频二三区| 国产乱视频在线观看| 激情综合丁香| 五月天亚洲激情| 国产香蕉尹人视频在线| 国产一级激情| 精品极品三级久久久久| 国产成人精品18| 伊人伊人av电影| 不卡av免费观看| 天天av综合网| 国产精品bbw一区二区三区| 国产二区视频在线观看| 精品国产福利一区二区在线| 伊人222成人综合网| 在线免费观看污| jizz一区二区三区| 中文字幕乱在线伦视频乱在线伦视频 | 国产精品99999| 97在线免费| 免费国产阿v视频在线观看| 豆国产97在线|亚洲| 国产小视频免费在线观看| 国产a级网站| 免费在线黄色av| 中中文字幕av在线| 在线三级av| 国产精选在线视频拍拍拍| 国产黄色在线观看| 青青草视频在线免费观看| 中文字幕在线免费看| 四虎精品成人a在线观看| 国产一二在线观看| 日本电影在线观看| 国产www网站| 国产鲁鲁视频在线观看免费| 精品国产免费观看一区| 国产免费视频| www狠狠操| 精品无吗乱吗av国产爱色| 黄色一级片视频| av日韩在线免费| 国产娇喘精品一区二区三区图片| www.三区| 亚洲欧美一区二区三区在线播放| 国产一区二区三区福利| 久久香蕉av| 免费看成年人视频在线观看| 91社区在线观看| 国产丝袜视频在线播放| 丁香婷婷在线| 国产专区在线播放| 久草福利资源在线视频| 天堂中文在线观看| 一本久中文高清| 在线观看精品一区二区三区| 国产青青草在线| 国产素人视频在线观看| 中文字幕中文字幕在线中高清免费版| 18 激情视频在线| 国产精彩视频在线观看免费蜜芽| 国产卡一卡二卡三| 中文字幕在线永久在线视频| 最好2018中文免费视频| 国产一级免费在线观看| 最近中文字幕mv免费高清电影| 交视频在线观看国产| 激情丁香婷婷| 国产乱在线观看视频| 天堂资源最新在线| 中文字幕乱在线伦视频乱在线伦视频| 国产女王在线**视频| 国产一级粉嫩xxxx| 在线视频观看国产| jizz性欧美| 国产麻豆麻豆| 中文产幕区在线观看| 欧美性猛交p30| 国产精品视频一区二区图片| 18被视频免费观看视频| 午夜在线网站| 日本中文字幕高清视频| 国产精品xxx电影| a中文在线播放| 国产三级自拍| а天堂8中文最新版在线官网| 成人av小说网| 在线激情网站| 国产午夜视频| 中文字幕2019第三页| 四虎精品视频| 国产小视频福利在线| av在线网页| 国产国语**毛片高清视频| 日本欧洲一区| 97一区二区三区| 国产视频1区| 国产综合视频一区二区三区免费| 在线播放www| 国产激情二区| 中文字幕在线免费视频|