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

python單鏈表實現(xiàn)代碼實例

 更新時間:2013年11月21日 14:25:13   作者:  
這篇文章主要介紹了python單鏈表實現(xiàn)代碼,大家參考使用吧

鏈表的定義:
鏈表(linked list)是由一組被稱為結(jié)點的數(shù)據(jù)元素組成的數(shù)據(jù)結(jié)構(gòu),每個結(jié)點都包含結(jié)點本身的信息和指向下一個結(jié)點的地址。由于每個結(jié)點都包含了可以鏈接起來的地址信息,所以用一個變量就能夠訪問整個結(jié)點序列。也就是說,結(jié)點包含兩部分信息:一部分用于存儲數(shù)據(jù)元素的值,稱為信息域;另一部分用于存儲下一個數(shù)據(jù)元素地址的指針,稱為指針域。鏈表中的第一個結(jié)點的地址存儲在一個單獨的結(jié)點中,稱為頭結(jié)點或首結(jié)點。鏈表中的最后一個結(jié)點沒有后繼元素,其指針域為空?! ?/P>

python單鏈表實現(xiàn)代碼:

復(fù)制代碼 代碼如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

class Node(object):
    def __init__(self,val,p=0):
        self.data = val
        self.next = p

class LinkList(object):
    def __init__(self):
        self.head = 0

    def __getitem__(self, key):

        if self.is_empty():
            print 'linklist is empty.'
            return

        elif key <0  or key > self.getlength():
            print 'the given key is error'
            return

        else:
            return self.getitem(key)

 

    def __setitem__(self, key, value):

        if self.is_empty():
            print 'linklist is empty.'
            return

        elif key <0  or key > self.getlength():
            print 'the given key is error'
            return

        else:
            self.delete(key)
            return self.insert(key)

    def initlist(self,data):

        self.head = Node(data[0])

        p = self.head

        for i in data[1:]:
            node = Node(i)
            p.next = node
            p = p.next

    def getlength(self):

        p =  self.head
        length = 0
        while p!=0:
            length+=1
            p = p.next

        return length

    def is_empty(self):

        if self.getlength() ==0:
            return True
        else:
            return False

    def clear(self):

        self.head = 0


    def append(self,item):

        q = Node(item)
        if self.head ==0:
            self.head = q
        else:
            p = self.head
            while p.next!=0:
                p = p.next
            p.next = q


    def getitem(self,index):

        if self.is_empty():
            print 'Linklist is empty.'
            return
        j = 0
        p = self.head

        while p.next!=0 and j <index:
            p = p.next
            j+=1

        if j ==index:
            return p.data

        else:

            print 'target is not exist!'

    def insert(self,index,item):

        if self.is_empty() or index<0 or index >self.getlength():
            print 'Linklist is empty.'
            return

        if index ==0:
            q = Node(item,self.head)

            self.head = q

        p = self.head
        post  = self.head
        j = 0
        while p.next!=0 and j<index:
            post = p
            p = p.next
            j+=1

        if index ==j:
            q = Node(item,p)
            post.next = q
            q.next = p


    def delete(self,index):

        if self.is_empty() or index<0 or index >self.getlength():
            print 'Linklist is empty.'
            return

        if index ==0:
            q = Node(item,self.head)

            self.head = q

        p = self.head
        post  = self.head
        j = 0
        while p.next!=0 and j<index:
            post = p
            p = p.next
            j+=1

        if index ==j:
            post.next = p.next

    def index(self,value):

        if self.is_empty():
            print 'Linklist is empty.'
            return

        p = self.head
        i = 0
        while p.next!=0 and not p.data ==value:
            p = p.next
            i+=1

        if p.data == value:
            return i
        else:
            return -1


l = LinkList()
l.initlist([1,2,3,4,5])
print l.getitem(4)
l.append(6)
print l.getitem(5)

l.insert(4,40)
print l.getitem(3)
print l.getitem(4)
print l.getitem(5)

l.delete(5)
print l.getitem(5)

l.index(5)

結(jié)果:

5
6
4
40
5
6

相關(guān)文章

  • python+opencv 讀取文件夾下的所有圖像并批量保存ROI的方法

    python+opencv 讀取文件夾下的所有圖像并批量保存ROI的方法

    今天小編就為大家分享一篇python+opencv 讀取文件夾下的所有圖像并批量保存ROI的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實現(xiàn)字典排序、按照list中字典的某個key排序的方法示例

    Python實現(xiàn)字典排序、按照list中字典的某個key排序的方法示例

    這篇文章主要介紹了Python實現(xiàn)字典排序、按照list中字典的某個key排序的方法,涉及Python字典與列表排序相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python中將字符串變成數(shù)字的5種方法示例

    Python中將字符串變成數(shù)字的5種方法示例

    Python提供了多種方式來轉(zhuǎn)換字符串為數(shù)字類型,但是每一種方式都有其優(yōu)缺點,這篇文章主要介紹了Python中將字符串變成數(shù)字的5種方法,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • Micropython固件使用Pico刷固件并配置VsCode開發(fā)環(huán)境的方法

    Micropython固件使用Pico刷固件并配置VsCode開發(fā)環(huán)境的方法

    這篇文章主要介紹了Micropython固件使用Pico刷固件并配置VsCode開發(fā)環(huán)境的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • pytorch 中autograd.grad()函數(shù)的用法說明

    pytorch 中autograd.grad()函數(shù)的用法說明

    這篇文章主要介紹了pytorch 中autograd.grad()函數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Windows下Python2與Python3兩個版本共存的方法詳解

    Windows下Python2與Python3兩個版本共存的方法詳解

    這篇文章主要介紹了Windows下Python2與Python3兩個版本共存的方法,文中介紹的很詳細,對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。
    2017-02-02
  • 解決Python報錯Valueerror: Expected 2d Array Got 1d Array Instead

    解決Python報錯Valueerror: Expected 2d Array 

    如您所知,每種編程語言都會遇到很多錯誤,有些是在運行時,有些是在編譯時,下面我就來看看當發(fā)生錯誤 ValueError: Expected 2D array, got 1D array instead時該如何解決吧
    2024-01-01
  • Python如何優(yōu)雅的實現(xiàn)自增枚舉類

    Python如何優(yōu)雅的實現(xiàn)自增枚舉類

    枚舉類型在編程中扮演著重要的角色,它們?yōu)樽兞抠x予了更加清晰的含義,然而,在Python中,實現(xiàn)自增的枚舉類并非直接而簡單的任務(wù),本文將深入討論如何通過不同的方式優(yōu)雅地實現(xiàn)自增的枚舉類,需要的朋友可以參考下
    2023-12-12
  • Django數(shù)據(jù)庫表反向生成實例解析

    Django數(shù)據(jù)庫表反向生成實例解析

    這篇文章主要介紹了Django數(shù)據(jù)庫表反向生成實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • python 簡單的股票基金爬蟲

    python 簡單的股票基金爬蟲

    最近基金非?;鸨?,很多原本不投資、不理財人,也開始討論、參與買基金了。根據(jù)投資對象的不同,基金分為股票型基金、債券基金、混合型基金、貨幣基金。所以今天我們就來看看,這些基金公司都喜歡買那些公司的股票。
    2021-06-06

最新評論

彭州市| 八宿县| 大足县| 莆田市| 奇台县| 大关县| 行唐县| 巴林左旗| 邻水| 定日县| 正定县| 白城市| 繁昌县| 镇雄县| 迭部县| 延边| 青龙| 盐城市| 阿克陶县| 合水县| 馆陶县| 平湖市| 全南县| 安远县| 巩义市| 蒙山县| 策勒县| 烟台市| 舟山市| 桃园县| 丹阳市| 桑植县| 沙湾县| 曲靖市| 连平县| 土默特右旗| 林口县| 拉孜县| 扬中市| 卓资县| 靖西县|