麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

python數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)結(jié)構(gòu)

2020-02-15 23:05:18
字體:
供稿:網(wǎng)友

用Python仿照C語言來實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu),供大家參考,具體內(nèi)容如下

本文所采用的數(shù)據(jù)結(jié)構(gòu)模板為 《數(shù)據(jù)結(jié)構(gòu)教程》C語言版,李春葆、尹為民等著。

該篇所涉及到的是線性表的順序存儲(chǔ)結(jié)構(gòu)。

代碼:

# !/usr/bin/env python# -*- coding: utf-8 -*- __author__ = 'MrHero'  class Node(object):  """  線性表的存儲(chǔ)結(jié)構(gòu)  和 C 語言中的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)類似  """  def __init__(self, data=None):    self.data = data    self.next = None  class LKList(object):  """  線性表的具體操作  """   def __init__(self):    """    相當(dāng)于初始化線性表, 即創(chuàng)建頭結(jié)點(diǎn)    頭節(jié)點(diǎn)為空節(jié)點(diǎn),占據(jù)位置號(hào)為0    創(chuàng)建好的表即為: 頭節(jié)點(diǎn)[0]->節(jié)點(diǎn)[1]->節(jié)點(diǎn)[2]->節(jié)點(diǎn)[3]->節(jié)點(diǎn)[4]    :return:    """    self.L = Node(None)    self.L.next = None    self.length = 0   def is_empty(self):    """    判斷線新表的長(zhǎng)度    :return:    """    return self.length == 0   def get_length(self):    """    獲取線新表的長(zhǎng)度    :return:    """    return self.length   def insert(self, i, elem):    """    在指定位i處置插入元素elem    :param i: 指定的位置    :param elem: 插入的元素elem    :return:    """    j = 0    p = self.L    while j < i-1 and p is not None: # 查找第 i-1 個(gè)節(jié)點(diǎn)      j += 1      p = p.next    if p is None:  # 未找到邏輯位序?yàn)?i-1 的節(jié)點(diǎn)      raise IndexError("Index is out of range!")    else:  # 找到邏輯位序?yàn)?i-1 的節(jié)點(diǎn)      tmp = Node(elem)      tmp.next = p.next      p.next = tmp      self.length += 1   def delete(self, i):    """    刪除指定節(jié)點(diǎn)的元素    :param i: 指定節(jié)點(diǎn)    :return: 刪除的指定節(jié)點(diǎn)元素值    """    if self.is_empty():      raise IndexError("The list is empty!")    elif 0 < i <= self.length:      j = 1      p = self.L      while j < i and p:        p = p.next        j += 1      delelte_node = p.next      p.next = delelte_node.next      self.length -= 1      return delelte_node.data    else:      raise IndexError("Index is out of range!")   def get_elem(self, i):    """    獲取某個(gè)節(jié)點(diǎn)的值    :param i:    :return:返回某個(gè)節(jié)點(diǎn)的值    """    if self.is_empty():      raise IndexError("The list is empty")    elif 0 < i <= self.length:      j = 0      p = self.L      while j < i and p:        p = p.next        j += 1      print p.data    else:      raise IndexError("Index is out of range!")   def locate_elem(self, elem):    """    查找某值的位置    :param elem:    :return: 返回第一個(gè)值等于elem的位置    """    j = 0    p = self.L    while p is not None and p.data != elem:      p = p.next      j += 1    if p is Node:      return -1    else:      return j   def create_dict_list_H(self, list):    """    頭插法建表    :param list:    :return:    """    p = self.L    for i in range(len(list)):      tmp = Node(list[i])      tmp.next = p.next      p.next = tmp      self.length += 1   def create_dict_list_E(self, list):    """    尾插法建表    :param list:    :return:    """    p = self.L    r = p    for i in range(len(list)):      tmp = Node(list[i])      r.next = tmp      r = tmp      self.length += 1    r.next = None   def show_lklist(self):    if self.is_empty():      raise IndexError("It's a empty list!")    else:      j = 1      p = self.L      while j <= self.length and p:        p = p.next        if p is not None:          print p.data        j += 1  if __name__ == '__main__':  lk = LKList()  #  # lk.create_dict_list_E([1, 2, 3, 4])  # print "-----"  # lk.get_elem(1)  # lk.get_elem(2)  # lk.get_elem(3)  # lk.get_elem(4)  # print "-------"  # lk.show_lklist()  # lk.insert(3, 5)  # print "-------"  # lk.show_lklist()  # lo = lk.locate_elem(5)  # print "location is %d" % lo  # lk.delete(4)  # print "-------"  # lk.show_lklist()            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人一区二区三区在线 | 逼片视频 | 激情网站在线观看 | 久久99深爱久久99精品 | 大逼逼影院 | 成人免费一区二区三区视频网站 | 在线播放亚洲 | 中国大陆高清aⅴ毛片 | 午夜国产小视频 | 国产亚洲精品成人a | 中文字幕激情视频 | 精品国产一区二区三区天美传媒 | 毛片免费观看视频 | 午夜精品福利视频 | 午夜视 | 黄www片| 西川av在线一区二区三区 | 国产精品成人av片免费看最爱 | 最新中文字幕在线视频 | 久久久久久久久久久国产精品 | av噜噜噜噜| 欧美成人午夜 | 娇喘视频在线观看 | 国产永久免费观看 | 精品国产乱码久久久久久丨区2区 | 舌头伸进添的我好爽高潮网站 | 黄色av免费 | 色妇视频 | 亚洲第一页在线观看 | 午夜伦情电午夜伦情电影 | 日本黄色免费观看视频 | 精品中文字幕视频 | 国产成人在线看 | 成人羞羞在线观看网站 | 午夜视频啊啊啊 | 国产免费视频一区二区裸体 | 欧美成人理论片乱 | 久久免费视频3 | 毛片视 | 国产亚洲黑人性受xxxx精品 | 日韩视频―中文字幕 |