欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么使?用Python仿照C語(yǔ)言來(lái)實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu)

今天小編給大家分享一下怎么使用Python仿照C語(yǔ)言來(lái)實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu)的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、濟(jì)南網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為濟(jì)南等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

代碼:

# !/usr/bin/env python
# -*- coding: utf-8 -*-
 
__author__ = 'MrHero'
 
 
class Node(object):
  """
  線性表的存儲(chǔ)結(jié)構(gòu)
  和 C 語(yǔ)言中的鏈?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)?nbsp;i-1 的節(jié)點(diǎn)
      raise IndexError("Index is out of range!")
    else:  # 找到邏輯位序?yàn)?nbsp;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()

以上就是“怎么使用Python仿照C語(yǔ)言來(lái)實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:怎么使?用Python仿照C語(yǔ)言來(lái)實(shí)現(xiàn)線性表的順序存儲(chǔ)結(jié)構(gòu)
當(dāng)前URL:http://chinadenli.net/article30/gppjso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作靜態(tài)網(wǎng)站、定制網(wǎng)站、網(wǎng)站制作

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
欧美一区二区三区不卡高清视| 日韩一级免费中文字幕视频| av国产熟妇露脸在线观看| 国产水滴盗摄一区二区| 91午夜少妇极品福利| 熟女少妇一区二区三区蜜桃| 黄色国产自拍在线观看| 男人和女人黄 色大片| 欧洲日本亚洲一区二区 | 亚洲黄色在线观看免费高清| 亚洲精品一区二区三区日韩| 日韩欧美在线看一卡一卡| 国产人妻精品区一区二区三区| 少妇毛片一区二区三区| 午夜精品久久久免费视频| 超薄丝袜足一区二区三区| 好吊视频一区二区在线| 欧美日韩国产的另类视频| 中文字幕日韩欧美亚洲午夜| 五月天婷亚洲天婷综合网| 亚洲成人精品免费在线观看| 亚洲精品伦理熟女国产一区二区| 久久国产精品热爱视频| 亚洲中文字幕高清乱码毛片| 亚洲综合香蕉在线视频| 欧美黑人黄色一区二区| 日韩精品你懂的在线观看| 91精品视频免费播放| 激情五月综五月综合网| 国产在线日韩精品欧美| 国产一级片内射视频免费播放| 日韩精品在线观看一区| 日韩精品中文字幕亚洲| 能在线看的视频你懂的| 国产精品激情对白一区二区| 97人摸人人澡人人人超碰| 国产午夜福利一区二区| 国产在线一区二区三区不卡| 国产成人亚洲综合色就色| 日本欧美在线一区二区三区| 色丁香之五月婷婷开心|