1. 程式人生 > >順序表(python語言描述)

順序表(python語言描述)

首先我們說線性表(順序表和連結表的統稱): 線性表是什麼?它是某類元素的一個集合,而且它還表示這個元素集合中各種元素的一種順序關係,對於兩種模式的線性表,區別在於這種關係的表示上的不同。

順序表:將元素按順序的存放在一個連續的儲存區中,各個元素的順序關係就是由他們的儲存關係表示的。 連結表:元素存放在由連結構造起來的一系列儲存塊中,也就是說,各個元素的儲存塊並不是連續的,它們之間的聯絡由元素之間的連結實現的

接下來講的是順序表

順序表各個元素之間的邏輯關係是由它們的儲存關係表示的,兩個元素的儲存塊相連續。對於順序表中所儲存的元素,可能元素型別相同,這時只用為個元素安排大小相同且連續的儲存塊;但是也可能一個順序表中所存放的元素的型別不同,這時的順序表的實現就採用標識連續儲存,實際資料各有各的位置,這是一種很簡單的索引結構(通過在連續儲存塊中放實際資料的索引,而實際資料則存放在各自獨立的塊中)

對於tuple,不可改變,所以其儲存空間固定採用一體式結構;但對於list,它大小可變,怎麼實現的呢?當然是採用**分離式的結構!**分離式結構就是list物件存放本身的容量,元素個數和元素儲存空間的索引,而元素實際的儲存和物件是分離的。這樣,當儲存空間滿了,就可以換一個儲存空間,將已有元素複製過去,索引變一下,這個過程中list物件沒有變發現沒?