前言
首先說下線性表,線性表是一種最基本,最簡單的數據結構,通俗點講就是一維的存儲數據的結構。
線性表分為順序表和鏈接表:
*順序表(這個不是本次重點,簡單介紹一下)
順序表是用一段連續的存儲單元依次存儲數據元素,查找元素是很方便的,但是如果要向其中添加刪除元素就不那么簡單了。因為添加刪除元素要先找到那個位置,由于順序表內部是通過地址的連續才使他成為一個表,當刪掉元素時,要把后面的元素全部向前移,填補上空出來的地址空間;添加元素也是一樣,需要先把該位置后面的元素向后移去,才能在這塊地址上添加元素。
以C語言為例:順序表可以通過一個數組來表示,每創建一個數組就對應給他分配一塊內存。當然除了靜態分配空間,還可以動態擴展。后續的操作要在這塊內存上進行,一般都需要移動數組元素,復雜度會很高。
在python中,順序表還有兩種表示方式:
這里的一體和分離是指表中的元素集合,和為實現正確操作而需記錄的信息,這兩部分是在同一塊空間還是在旁邊的一塊新的空間中。
python中的tuple和list就是采用了順序表的實現技術,不過tuple是不可變的,不支持對內部的操作。而list是一個元素個數可變的線性表,支持添加刪除等操作。list的思想其實是和C語言中一樣的,只是對其中的功能進行了一些封裝,也就是list的那些屬性。
*鏈式表
鏈表,顧名思義,相鄰結點是通過鏈來連接的,那么什么是鏈呢。我們知道,C語言中有指針,指針通過地址來找到他的目標。如此說來,一個節點不僅僅有他的元素,還需要有一個他下一個元素的地址。
那么,這里需要指針和地址。python中的指針是什么呢?下面先把這個放一下,先去理解一下python里面變量標識的實質。
先看一下這個,為什么a和b的id是一樣的呢?那我再問一個問題:python中交換兩個變量的值時怎樣來實現的?
1 a = 10 2 b = 20 3 a,b = b,a
新聞名稱:python實現單鏈表的方法示例-創新互聯
文章網址:http://m.kartarina.com/article26/cdcgjg.html
成都網站建設公司_創新互聯,為您提供企業網站制作、做網站、網站建設、網站設計、關鍵詞優化、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯