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

python中的單向鏈表實(shí)現(xiàn)

 更新時(shí)間:2022年01月29日 08:58:31   作者:tt丫  
大家好,本篇文章主要講的是python中的單向鏈表實(shí)現(xiàn),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下

一、單向鏈表概念

單向鏈表的鏈接方向是單向的,由結(jié)點(diǎn)構(gòu)成,head指針指向第一個(gè)成為head結(jié)點(diǎn),而終止于最后一個(gè)指向None的指針,對(duì)鏈表的訪問要通過順序讀取從頭部開始。

二、建立節(jié)點(diǎn)對(duì)象

class Node:
    def __init__(self,data):
        self.data = data #節(jié)點(diǎn)的值域
        self.next = None #連接下一個(gè)節(jié)點(diǎn),暫時(shí)指向空

三、鏈表對(duì)象的初始定義

class linkList:
    def __init__(self):
        self.head = None #首先建立鏈表頭,暫時(shí)指向空

四、判斷鏈表是否為空

    #判斷鏈表是否為空
    def isEmpty(self):
        if self.head:
            return False
        else:
            return True

五、獲取鏈表長(zhǎng)度

    def length(self):
        if self.isEmpty():
            return 0
        else:
            t = self.head
            n = 1
            while t.next:
                t = t.next
                n = n + 1
            return n

六、向頭部添加節(jié)點(diǎn)

    def addhead(self,data):
        node = Node(data) #新建一個(gè)節(jié)點(diǎn)
        node.next = self.head #新建的節(jié)點(diǎn)接上原來的鏈表
        self.head = node #重置鏈表的頭

七、向尾部添加節(jié)點(diǎn)

    def addtail(self,data):
        node = Node(data) #新建一個(gè)節(jié)點(diǎn)
        #先判斷鏈表是否為空
        if self.isEmpty():
            self.addhead(data)
        else:
            t = self.head 
            while t.next: #通過循環(huán)找到尾部
                t = t.next 
            t.next = node #尾部接上

八、指定位置插入節(jié)點(diǎn)

    def insert(self,data,index):
        if index == 0 or self.isEmpty():
            self.addhead(data)
        elif index >= self.length():
            self.addtail(data)
        else:
            node = Node(data)
            t = self.head
            n = 1
            while n < index - 1:
                t = t.next
                n = n + 1
            a = t.next.next
            t.next = node
            node.next = a

九、刪除指定位置的節(jié)點(diǎn)

    def delete(self,index):
        if self.isEmpty():
            print("The linked list is empty")
        else:
            t = self.head
            if index == 0:
                self.head = t.next
            elif index == self.length() - 1:
                n = 1
                while n < self.length() - 1:
                    t = t.next
                    n = n + 1
                t.next = None
            elif index > self.length() - 1:
                print("Out of range")
            elif index < 0:
                print("Wrong operation")
            else:
                n = 1
                while n < index - 1:
                    t = t.next
                    n = n + 1
                a = t.next.next
                t.next = a

十、查找是否有該數(shù)據(jù)的節(jié)點(diǎn)

    def search(self,data):
        t = self.head
        n = 1
        while t.next:
            if t.data == data:
                print(str(n) + " ")
            t = t.next
            n = n + 1
        if (t.data == data):
            print(str(n) + " ")

十一、遍歷輸出整個(gè)鏈表

    def form(self,datalist):
        self.addhead(datalist[0])
        for i in range(1,len(datalist)):
            self.addtail(datalist[i])
        t = self.head
        while t.next:
            print(t.data)
            t = t.next
        print(t.data)

十二、輸入數(shù)據(jù)創(chuàng)建鏈表

    def form(self,datalist):
        self.addhead(datalist[0])
        for i in range(1,len(datalist)):
            self.addtail(datalist[i])
        t = self.head
        while t.next:
            print(t.data)
            t = t.next
        print(t.data)

十三、具體實(shí)現(xiàn)

data = input("input(以空格為界):")
data = data.split(" ")
linkList = linkList()
linkList.form(data) #創(chuàng)建鏈表
addlist = linkList.addhead(5) #在頭節(jié)點(diǎn)加入
linkList.ergodic() #遍歷輸出
addlist = linkList.addtail(5) #在尾節(jié)點(diǎn)加入
linkList.ergodic() #遍歷輸出
linkList.search(5) #查找是否有"5"的節(jié)點(diǎn)
linkList.delete(4) #刪除第4個(gè)數(shù)據(jù)
linkList.ergodic() #遍歷輸出
print(linkList.length()) #輸出鏈表長(zhǎng)度
linkList.insert(89,2) #指定位置插入數(shù)據(jù)
linkList.ergodic() #遍歷輸出  

到此這篇關(guān)于python中的單向鏈表實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python單向鏈表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python解壓TAR文件至指定文件夾的實(shí)例

    python解壓TAR文件至指定文件夾的實(shí)例

    今天小編就為大家分享一篇python解壓TAR文件至指定文件夾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python使用正則表達(dá)式獲取網(wǎng)頁(yè)中所需要的信息

    Python使用正則表達(dá)式獲取網(wǎng)頁(yè)中所需要的信息

    這篇文章主要介紹了Python使用正則獲取網(wǎng)頁(yè)中所需要的信息的相關(guān)資料,需要的朋友可以參考下
    2018-01-01
  • 使用Python進(jìn)行Ping測(cè)試的操作指南

    使用Python進(jìn)行Ping測(cè)試的操作指南

    在網(wǎng)絡(luò)工程中,Ping測(cè)試是一種常用的網(wǎng)絡(luò)診斷工具,用于檢查網(wǎng)絡(luò)連接的可達(dá)性和響應(yīng)時(shí)間,隨著Python編程語(yǔ)言的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)工程師開始使用Python進(jìn)行自動(dòng)化網(wǎng)絡(luò)測(cè)試和管理任務(wù),本篇文章將詳細(xì)介紹如何使用Python進(jìn)行Ping測(cè)試,需要的朋友可以參考下
    2024-06-06
  • python連接mysql實(shí)例分享

    python連接mysql實(shí)例分享

    本文給大家匯總介紹了使用python連接mysql的幾個(gè)實(shí)例,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-10-10
  • python實(shí)現(xiàn)一個(gè)函數(shù)版的名片管理系統(tǒng)過程解析

    python實(shí)現(xiàn)一個(gè)函數(shù)版的名片管理系統(tǒng)過程解析

    這篇文章主要介紹了python實(shí)現(xiàn)一個(gè)函數(shù)版的名片管理系統(tǒng)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python中的ceil()方法使用教程

    Python中的ceil()方法使用教程

    這篇文章主要介紹了Python中的ceil()方法使用教程,是Python入門中必會(huì)的方法之一,需要的朋友可以參考下
    2015-05-05
  • 一文搞懂Python中Pandas數(shù)據(jù)合并

    一文搞懂Python中Pandas數(shù)據(jù)合并

    pandas是基于NumPy的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas納入了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效操作大型數(shù)據(jù)集的工具。pandas提供大量快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會(huì)發(fā)現(xiàn),它是使Python強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一
    2021-11-11
  • Python使用sqlalchemy實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)的幫助類

    Python使用sqlalchemy實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)的幫助類

    這篇文章主要為大家詳細(xì)介紹了Python如何使用sqlalchemy實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)的幫助類,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考下
    2024-02-02
  • Python使用pyinstaller打包spec文件的方法詳解

    Python使用pyinstaller打包spec文件的方法詳解

    PyInstaller是一個(gè)用于將Python腳本打包成獨(dú)立的可執(zhí)行文件的工具,使用PyInstaller您可以將Python應(yīng)用程序轉(zhuǎn)換為可執(zhí)行文件,而無需用戶安裝Python解釋器或任何額外的庫(kù),這篇文章主要給大家介紹了關(guān)于Python使用pyinstaller打包spec文件的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • python中round函數(shù)如何使用

    python中round函數(shù)如何使用

    在本篇文章里小編給大家整理了關(guān)于python的round函數(shù)用法總結(jié)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06

最新評(píng)論

上犹县| 林西县| 麻江县| 泰和县| 汉寿县| 松原市| 保靖县| 濉溪县| 谷城县| 淮滨县| 泸水县| 定结县| 长泰县| 登封市| 中方县| 二手房| 长子县| 贵溪市| 广丰县| 鄂托克前旗| 高青县| 丽江市| 环江| 利川市| 济宁市| 潮州市| 天长市| 扶沟县| 买车| 呼玛县| 科技| 宁都县| 锦屏县| 丁青县| 瑞丽市| 潼关县| 双峰县| 仙桃市| 无棣县| 宿松县| 阳江市|