摘要:線性表的和采用了順序表的實現技術,具有順序表的所有性質。刪除鏈表應丟棄這個鏈表里的所有結點。在語言中,就是檢查相應變量的值是否為。也就是說,插入新元素的操作是通過修改鏈接,接入新結點,從而改變表結構的方式實現的。
1.線性表
Python的list和tuple采用了順序表的實現技術,具有順序表的所有性質。
2.鏈接表單向鏈接表 的結點是一個二元組。
其表元素域elem保存著作為表元素的數據項(或者數據項的關聯信息),鏈接域next里保存著同一個表里的下一個結點的標識。
首先定義一個簡單的表結點類:
class LNode: def __init__(self,elem,next_=None): self.elem = elem self.next = next_
這個類里只有一個初始化方法,它給對象的兩個域賦值。方法的第二個參數用名字next_,是為了避免與Python標準函數next重名。這也是Python程序中命名的一個慣例。第二個參數還提供了默認值,只是為了使用方便。
2.1 基本鏈表操作 創建空鏈表只需要把相應的表頭變量設置為空鏈接,在Python語言中將其設置為None。
刪除鏈表應丟棄這個鏈表里的所有結點。這個操作的實現與具體的語言環境有關。在一些語言(如C語言)里,需要通過明確的操作釋放一個個結點所用的存儲。在Python中,這個操作很簡單,只需簡單地將表指針賦值為None,就拋棄了鏈表原有的所有結點。Python解釋器的存儲管理系統會自動回收不用的存儲。
判斷表是否為空將表頭變量的值與空鏈接比較。在Python語言中,就是檢查相應變量的值是否為None。
判斷表是否滿一般而言鏈表不會滿,除非程序用光了所有可用的存儲空間。
加入元素在鏈表里加入新元素時,并不需要移動已有的數據,只需為新元素安排一個新結點,然后根據操作要求,把新結點連在表中的正確元素。也就是說,插入新元素的操作是通過修改鏈接,接入新結點,從而改變表結構的方式實現的。
表首端加入創建一個新結點并存入數據
把原數據首結點的鏈接存入新結點的鏈接域next,這一操作將原表的一串結點鏈接在剛創建的新結點之后
修改表頭變量,使之指向新結點,這個操作使新結點實際成為表頭變量所指的結點,即表的首結點
q = LNode(13) q.next = head.next head = q
注意,即使在插入前head指的是空表,上面三步也能正確完成工作。這個插入只是一次安排新存儲和幾次賦值,操作具有常量時間復雜度。
一般情況的元素插入要想在單鏈表里的某位置插入一個新結點,必須先找到該位置之前的那個結點,因為新結點需要插入它的后面,需要修改它的next域
設變量pre已指向要插入元素位置的前一結點,操作也分為三步:
q = LNode(13) q.next = pre.next pre.next = q刪除元素
刪除表首元素
一般情況的元素刪除
掃描、定位和遍歷 鏈表操作的復雜度 求表的操作def length(head): p,n = head,0 while p is not None: n += 1 p = p.next return n3.3.3 單鏈表類的實現
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44209.html
摘要:線性表是最基本的數據結構之一,在實際程序中應用非常廣泛,它還經常被用作更復雜的數據結構的實現基礎。鏈表之單鏈表線性表的定義,它是一些元素的序列,維持著元素之間的一種線性關系。 線性表學習筆記,python語言描述-2019-1-14 線性表簡介 在程序中,經常需要將一組(通常是同為某個類型的)數據元素作為整體管理和使用,需要創建這種元素組,用變量記錄它們,傳進傳出函數等。一組數據中包含...
摘要:為了進一步了解的邏輯,圖對和進行了展開分析。另外,在命名空間中還隱式聲明了控制依賴操作,這在章節控制流中相關說明。簡述是高效易用的開源庫,有效支持線性代數,矩陣和矢量運算,數值分析及其相關的算法。返回其中一塊給用戶,并將該內存塊標識為占用。 3. TF 代碼分析初步3.1 TF總體概述為了對TF有整體描述,本章節將選取TF白皮書[1]中的示例展開說明,如圖 3 1所示是一個簡單線性模型的TF...
摘要:線性結構數組與鏈表線性結構線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。將兩個線性數據結構區分開的方法是添加和移除項的方式,特別是添加和移除項的位置。相對于數組,鏈表的好處在于,添加或移除元素的時候不需要移動其他元素。 線性結構 數組與鏈表 線性結構 線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。你也可以稱為頂部和底部,名字都不重要。將兩個線性數據結構區分開的方法...
摘要:線性結構數組與鏈表線性結構線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。將兩個線性數據結構區分開的方法是添加和移除項的方式,特別是添加和移除項的位置。相對于數組,鏈表的好處在于,添加或移除元素的時候不需要移動其他元素。 線性結構 數組與鏈表 線性結構 線性數據結構有兩端,有時被稱為左右,某些情況被稱為前后。你也可以稱為頂部和底部,名字都不重要。將兩個線性數據結構區分開的方法...
摘要:全棧數據之門前言自強不息,厚德載物,自由之光,你是我的眼基礎,從零開始之門文件操作權限管理軟件安裝實戰經驗與,文本處理文本工具的使用家族的使用綜合案例數據工程,必備分析文件探索內容探索交差并補其他常用的命令批量操作結語快捷鍵,之門提高效率光 showImg(https://segmentfault.com/img/bVK0aK?w=350&h=350); 全棧數據之門 前言 自強不息,...
閱讀 854·2023-04-25 23:59
閱讀 3751·2021-10-08 10:04
閱讀 1688·2019-08-30 14:05
閱讀 1021·2019-08-30 13:58
閱讀 497·2019-08-29 18:41
閱讀 1133·2019-08-29 17:15
閱讀 2326·2019-08-29 14:13
閱讀 2751·2019-08-29 13:27