国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python數(shù)據(jù)結構與算法分析:實現(xiàn)單向鏈表

學習如何在Python中實現(xiàn)單向鏈表。探索使用Python代碼示例的數(shù)據(jù)結構和算法分析基礎知識。

Python 實現(xiàn)單向鏈表詳細教程

在計算機科學中,單向鏈表是一種基本的數(shù)據(jù)結構,用于存儲元素集合。每個節(jié)點包含一個數(shù)據(jù)元素和指向下一個節(jié)點的引用(鏈接)。讓我們深入了解如何使用Python實現(xiàn)單向鏈表。

示例代碼

class Node:
    def __init__(self, elem):
        """
        初始化具有元素值和下一個節(jié)點引用的節(jié)點。
        
        :param elem: 節(jié)點的元素值
        """
        self.elem = elem
        self.next = None

class SingleLinkList:
    """
    單向鏈表由節(jié)點組成,每個節(jié)點包含一個元素和指向下一個節(jié)點的鏈接。
    """
    
    def __init__(self, node=None):
        self.__head = node
        
    def is_empty(self):
        """ 檢查鏈表是否為空 """
        return self.__head is None

    def length(self):
        """ 返回鏈表的長度 """
        cur = self.__head
        count = 0
        while cur is not None:
            count += 1
            cur = cur.next
        return count

    def travel(self):
        """ 遍歷鏈表 """
        cur = self.__head
        while cur is not None:
            print(cur.elem, end=' ')
            cur = cur.next

    def add(self, item):
        """ 在鏈表開頭添加元素(頭部插入) """
        node = Node(item)
        node.next = self.__head
        self.__head = node

    def append(self, item):
        """ 在鏈表末尾添加元素(尾部插入) """
        node = Node(item)
        if self.is_empty():
            self.__head = node
        else:
            cur = self.__head
            while cur.next is not None:
                cur = cur.next
            cur.next = node

    def insert(self, pos, item):
        """ 在特定位置插入元素 """
        if pos <= 0:
            self.add(item)
        elif pos > (self.length() - 1):
            self.append(item)
        else:
            pre = self.__head
            count = 0
            while count < (pos - 1):
                count += 1
                pre = pre.next
            node = Node(item)
            node.next = pre.next
            pre.next = node

    def remove(self, item):
        """ 從鏈表中刪除元素 """
        cur = self.__head
        pre = None
        while cur is not None:
            if cur.elem == item:
                if cur == self.__head:
                    self.__head = cur.next
                else:
                    pre.next = cur.next
                break
            else:
                pre = cur
                cur = cur.next

    def search(self, item):
        """ 查找具有特定元素的節(jié)點 """
        cur = self.__head
        while cur is not None:
            if cur.elem == item:
                return True
            else:
                cur = cur.next
        return False

if __name__ == '__main__':
    ll = SingleLinkList()
    ll.is_empty()
    ll.append(55)
    ll.is_empty()
    ll.append(2)
    ll.add(8)
    ll.append(3)
    ll.append(4)
    ll.append(5)
    ll.insert(-1, 9)
    ll.insert(2, 100)
    ll.travel()


文章來源地址http://www.zghlxwxcb.cn/article/722.html

到此這篇關于Python數(shù)據(jù)結構與算法分析:實現(xiàn)單向鏈表的文章就介紹到這了,更多相關內容可以在右上角搜索或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

原文地址:http://www.zghlxwxcb.cn/article/722.html

如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請聯(lián)系站長進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【數(shù)據(jù)結構和算法】使用數(shù)組的結構實現(xiàn)鏈表(單向或雙向)

    【數(shù)據(jù)結構和算法】使用數(shù)組的結構實現(xiàn)鏈表(單向或雙向)

    上文我們通過結構體的結構實現(xiàn)了隊列 、以及循環(huán)隊列的實現(xiàn),我們或許在其他老師的教學中,只學到了用結構體的形式來實現(xiàn)鏈表、隊列、棧等數(shù)據(jù)結構,本文我想告訴你的是,我們 可以使用數(shù)組的結構實現(xiàn)鏈表、單調棧、單調隊列 目錄 前言 一、用數(shù)組結構的好處 1.數(shù)

    2024年01月20日
    瀏覽(91)
  • 數(shù)據(jù)結構與算法(三):單向鏈表

    數(shù)據(jù)結構與算法(三):單向鏈表

    鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結構,數(shù)據(jù)元素的邏輯是通過鏈表種的指針鏈接次序實現(xiàn)的。鏈表由一系列節(jié)點組成,每個節(jié)點包括兩部分:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,一個是存儲下一個節(jié)點地址的指針域。單向鏈表從頭節(jié)點(也可以沒有頭節(jié)點)開始

    2024年02月15日
    瀏覽(24)
  • 數(shù)據(jù)結構——實現(xiàn)單向鏈表

    數(shù)據(jù)結構——實現(xiàn)單向鏈表

    單鏈表是一種常見的數(shù)據(jù)結構,用于存儲一系列的數(shù)據(jù)元素,每個節(jié)點包含數(shù)據(jù)和指向下一個節(jié)點的指針。 單鏈表通常用于實現(xiàn)某些算法或數(shù)據(jù)結構,如鏈式前向星、哈希表、鏈式棧、隊列等等。 單鏈表在程序設計中的作用不可忽略,是很多基礎算法的核心數(shù)據(jù)結構之一。

    2024年02月07日
    瀏覽(23)
  • 【數(shù)據(jù)結構】單向鏈表實現(xiàn) 超詳細

    【數(shù)據(jù)結構】單向鏈表實現(xiàn) 超詳細

    目錄 一. 單鏈表的實現(xiàn) 1.準備工作及其注意事項 1.1 先創(chuàng)建三個文件 1.2 注意事項:幫助高效記憶和理解 2.鏈表的基本功能接口 2.0 創(chuàng)建一個 鏈表 2.1 鏈表的 打印 ?3.鏈表的創(chuàng)建新節(jié)點接口 4.鏈表的節(jié)點 插入 功能接口 4.1 尾插接口 4.2 頭插接口 ? ??4.3 指定位置 pos 之前? 插入

    2024年02月19日
    瀏覽(23)
  • 數(shù)據(jù)結構 模擬實現(xiàn)LinkedList單向不循環(huán)鏈表

    數(shù)據(jù)結構 模擬實現(xiàn)LinkedList單向不循環(huán)鏈表

    目錄 一、鏈表的簡單介紹 二、鏈表的接口 三、鏈表的方法實現(xiàn) (1)display方法 (2)size得到單鏈表的長度方法 (3)addFirst頭插方法 (4)addLast尾插方法 (5)addIndex指定位置插入方法 (6)contains方法 (7)remove刪除第一個key值節(jié)點的方法 (8)removeAllKey刪除所有值為key的方法

    2024年02月03日
    瀏覽(26)
  • 數(shù)據(jù)結構:詳解【鏈表】的實現(xiàn)(單向鏈表+雙向鏈表)

    數(shù)據(jù)結構:詳解【鏈表】的實現(xiàn)(單向鏈表+雙向鏈表)

    1.順序表的問題和思考 問題: 中間/頭部的插入刪除,時間復雜度為O(N)。 增容需要申請新空間,拷貝數(shù)據(jù),釋放舊空間,會有不小的消耗。 增容一般是呈2倍的增長,勢必會有一定的空間浪費。例如當前容量為100,滿了以后增容到200,我們再繼續(xù)插入了5個數(shù)據(jù),后面沒有數(shù)據(jù)

    2024年03月26日
    瀏覽(33)
  • 數(shù)據(jù)結構單向循環(huán)鏈表,創(chuàng)建以及增刪改查的實現(xiàn)

    數(shù)據(jù)結構單向循環(huán)鏈表,創(chuàng)建以及增刪改查的實現(xiàn)

    循環(huán)鏈表: 是另一種形式的鏈式存儲結構。其特點是表中最后一個結點的指針域指向頭節(jié)點,整個鏈表形成一個環(huán)。 單向循環(huán)鏈表的操作和單鏈表操作基本一致,差別在于:當鏈表遍歷時,判別當前指針p是否指向表尾結點的終止條件不同。在單鏈表中,判別條件一般為p!=

    2024年02月16日
    瀏覽(23)
  • 數(shù)據(jù)結構三:線性表之單鏈表(帶頭結點單向)的設計與實現(xiàn)

    數(shù)據(jù)結構三:線性表之單鏈表(帶頭結點單向)的設計與實現(xiàn)

    ? ? ? ? 線性表的鏈式存儲結構正是所謂的單鏈表,何謂單鏈表?通過地址將每一個數(shù)據(jù)元素串起來,進行使用,這可以彌補順序表在進行任意位置的插入和刪除需要進行大量的數(shù)據(jù)元素移動的缺點,只需要修改指針的指向即可;單鏈表的種類又可劃分為很多種,本篇博客詳

    2024年02月19日
    瀏覽(103)
  • 數(shù)據(jù)結構實驗任務八:排序算法的實現(xiàn)與分析

    數(shù)據(jù)結構實驗任務八:排序算法的實現(xiàn)與分析

    問題描述 統(tǒng)計成績:給出 n 個學生的考試成績表,每條信息由姓名和分數(shù)組成,試設 計一個算法: 1.按分數(shù)高低次序,打印出每個學生在考試中獲得的名次,分數(shù)相同的為同 一名次; 2.按名次列出每個學生的姓名與分數(shù)。 輸入要求 輸入 n+1 行,前 n 行是 n 個學生的信息(姓

    2024年02月04日
    瀏覽(94)
  • 【數(shù)據(jù)結構初階】三、 線性表里的鏈表(無頭+單向+非循環(huán)鏈表 -- C語言實現(xiàn))

    【數(shù)據(jù)結構初階】三、 線性表里的鏈表(無頭+單向+非循環(huán)鏈表 -- C語言實現(xiàn))

    ========================================================================= 相關代碼gitee自取 : C語言學習日記: 加油努力 (gitee.com) ?========================================================================= 接上期 : 【數(shù)據(jù)結構初階】二、 線性表里的順序表(C語言實現(xiàn)順序表)-CSDN博客 ?=========================

    2024年02月08日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包