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

Python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)線性鏈表(單鏈表)算法示例

 更新時(shí)間:2019年05月04日 16:42:00   作者:King-1018  
這篇文章主要介紹了Python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)線性鏈表(單鏈表)算法,結(jié)合實(shí)例形式分析了Python單鏈表的定義、節(jié)點(diǎn)插入、刪除、打印等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)線性鏈表(單鏈表)算法。分享給大家供大家參考,具體如下:

初學(xué)python,拿數(shù)據(jù)結(jié)構(gòu)中的線性鏈表存儲(chǔ)結(jié)構(gòu)練練手,理論比較簡(jiǎn)單,直接上代碼。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# Author: Hui
# Date:  2017-10-13
# 結(jié)點(diǎn)類(lèi),
class Node:
  def __init__(self, data):
    self.data = data      # 數(shù)據(jù)域
    self.next = None      # 指針域
  def get_data(self):
    return self.data
# 鏈表類(lèi)
class List:
  def __init__(self, head):
    self.head = head      # 默認(rèn)初始化頭結(jié)點(diǎn)
  def is_empty(self):     # 空鏈表判斷
    return self.get_len() == 0
  def get_len(self):     # 返回鏈表長(zhǎng)度
    length = 0
    temp = self.head
    while temp is not None:
      length += 1
      temp = temp.next
    return length
  def append(self, node):     # 追加結(jié)點(diǎn)(鏈表尾部追加)
    temp = self.head
    while temp.next is not None:
      temp = temp.next
    temp.next = node
  def delete(self, index):      # 刪除結(jié)點(diǎn)
    if index < 1 or index > self.get_len():
      print "給定位置不合理"
      return
    if index == 1:
      self.head = self.head.next
      return
    temp = self.head
    cur_pos = 0
    while temp is not None:
      cur_pos += 1
      if cur_pos == index-1:
        temp.next = temp.next.next
      temp = temp.next
  def insert(self, pos, node):     # 插入結(jié)點(diǎn)
    if pos < 1 or pos > self.get_len():
      print "插入結(jié)點(diǎn)位置不合理..."
      return
    temp = self.head
    cur_pos = 0
    while temp is not Node:
      cur_pos += 1
      if cur_pos == pos-1:
        node.next = temp.next
        temp.next =node
        break
      temp = temp.next
  def reverse(self, head):     # 反轉(zhuǎn)鏈表
    if head is None and head.next is None:
      return head
    pre = head
    cur = head.next
    while cur is not None:
      temp = cur.next
      cur.next = pre
      pre = cur
      cur = temp
    head.next = None
    return pre
  def print_list(self, head):      # 打印鏈表
    init_data = []
    while head is not None:
      init_data.append(head.get_data())
      head = head.next
    return init_data
if __name__ == '__main__':
  head = Node("head")
  list = List(head)
  print '初始化頭結(jié)點(diǎn):\t', list.print_list(head)
  for i in range(1, 10):
    node = Node(i)
    list.append(node)
  print '鏈表添加元素:\t', list.print_list(head)
  print '鏈表是否空:\t', list.is_empty()
  print '鏈表長(zhǎng)度:\t', list.get_len()
  list.delete(9)
  print '刪除第9個(gè)元素:\t',list.print_list(head)
  node = Node("insert")
  list.insert(3, node)
  print '第3個(gè)位置插入‘insert'字符串 :\t', list.print_list(head)
  head = list.reverse(head)
  print '鏈表反轉(zhuǎn):', list.print_list(head)

執(zhí)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python 游戲大作炫酷機(jī)甲闖關(guān)游戲爆肝數(shù)千行代碼實(shí)現(xiàn)案例進(jìn)階

    Python 游戲大作炫酷機(jī)甲闖關(guān)游戲爆肝數(shù)千行代碼實(shí)現(xiàn)案例進(jìn)階

    本篇文章給大家?guī)?lái)Python的一個(gè)游戲大制作—機(jī)甲闖關(guān)冒險(xiǎn),數(shù)千行代碼實(shí)現(xiàn)的游戲,過(guò)程很詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 關(guān)于Python的異常捕獲和處理

    關(guān)于Python的異常捕獲和處理

    程序在運(yùn)行過(guò)程當(dāng)中,不可避免的會(huì)出現(xiàn)一些錯(cuò)誤,比如:使用了沒(méi)有賦值過(guò)的變量,使用了不存在的索引,一個(gè)數(shù)字除以0,這些錯(cuò)誤在程序中,我們稱(chēng)其為異常,那么如何處理這些異常呢,今天我們就來(lái)看一看
    2023-04-04
  • Python sys.path詳細(xì)介紹

    Python sys.path詳細(xì)介紹

    這篇文章詳細(xì)介紹了Python sys.path,有需要的朋友可以參考一下
    2013-10-10
  • python連接PostgreSQL數(shù)據(jù)庫(kù)的過(guò)程詳解

    python連接PostgreSQL數(shù)據(jù)庫(kù)的過(guò)程詳解

    這篇文章主要介紹了python連接PostgreSQL數(shù)據(jù)庫(kù)的過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件

    Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Python Pivot table透視表使用方法解析

    Python Pivot table透視表使用方法解析

    這篇文章主要介紹了Python Pivot table透視表使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 在centos7中分布式部署pyspider

    在centos7中分布式部署pyspider

    PySpider:一個(gè)國(guó)人編寫(xiě)的強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)并帶有強(qiáng)大的WebUI。采用Python語(yǔ)言編寫(xiě),分布式架構(gòu),支持多種數(shù)據(jù)庫(kù)后端,強(qiáng)大的WebUI支持腳本編輯器,任務(wù)監(jiān)視器,項(xiàng)目管理器以及結(jié)果查看器。
    2017-05-05
  • python實(shí)現(xiàn)發(fā)送郵件

    python實(shí)現(xiàn)發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Python正則表達(dá)式匹配和提取IP地址

    Python正則表達(dá)式匹配和提取IP地址

    這篇文章主要介紹了Python正則表達(dá)式匹配和提取IP地址的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • python驗(yàn)證多組數(shù)據(jù)之間有無(wú)顯著差異

    python驗(yàn)證多組數(shù)據(jù)之間有無(wú)顯著差異

    這篇文章主要介紹了python驗(yàn)證多組數(shù)據(jù)之間有無(wú)顯著差異,利用方差分析和卡方分布驗(yàn)證多組數(shù)據(jù)之間的某些屬性有無(wú)顯著性差異,對(duì)于連續(xù)性屬性可以用方差分析,對(duì)于離散型屬性可以用卡方檢驗(yàn)。下面文章詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-01-01

最新評(píng)論

夹江县| 基隆市| 乌什县| 侯马市| 金塔县| 大埔县| 焦作市| 青龙| 西畴县| 宁化县| 清水河县| 海口市| 特克斯县| 新乡市| 察哈| 伊金霍洛旗| 万荣县| 龙山县| 三穗县| 通化县| 海伦市| 福建省| 山阳县| 建昌县| 辽宁省| 双牌县| 宜城市| 科技| 米泉市| 呼伦贝尔市| 万安县| 开阳县| 怀安县| 恭城| 礼泉县| 普洱| 洱源县| 阳西县| 龙口市| 突泉县| 金塔县|