數據結構篇之線性表——數組

1、線性表的類型定義

①線性結構特點

在數據元素的非空有限集合中:
(1)存在唯一的一個被稱做“第一個”的數據元素;
(2)存在唯一的一個被稱做“最後一個”的數據元素;
(3)除第一個之外,集合中的每個數據集元素均只有一個前驅;
(4)除最後一個之外,集合中每個數據元素君之憂一個後繼。

②線性表的概念

一個線性表是n個數據元素的有限序列,數據元素可以是單個字母字符,如:	

(A,B,C,…,Z)

是一個線性表,數據元素也可以由若干個數據項組成,但同一線性表中的元素必定具有相同的特性,即屬同一數據對象,相鄰的數據元素之間存在着序偶關係,若將線性表標記爲

(a1,…,ai-1,ai,ai+1,…,an

ai是表中第i個元素,稱i爲數據元素ai在數據線中的位序。

2、線性表的順序表示

線性表的順序表示指的是用一組 地址連續的存儲單元一次存儲線性表的數據元素
假設線性表的每個元素需佔l個存儲單元,並以所佔的第一個單元的存儲地址作爲數據元素的存儲位置。則線性表中第i+1個數據元素的存儲位置LOC(ai+1)和第i個數據元素的存儲位置LOC(ai)之間滿足下列關係:

LOC(ai+1) = LOC(ai) + l

一般來說,線性表的第i個數據元素存儲位置爲:

LOC(ai) = LOC(a1) + (i - 1) * l

這種存儲結構的線性表爲順序表,它的特點是,以數據元素在計算機內 “物理位置相鄰”來表示順序表中數據元素之間的邏輯關係,每個數據元素的存儲位置都和線性表的起始位置相差一個和數據元素在線性表中的位序成正比的常數,由此,只要確定了存儲線性表的起始位置,線性表中的任一數據元素都可隨機存取,所以線性表的順序結構是一種隨機存取的存儲結構。

由於高級程序設計語言中的數組類型也有隨機存取的特性,因此通常都用數組來描述數據結構中的順序存儲結構。

3、結構示意圖

在這裏插入圖片描述

4、數組的增刪

①新增元素

由於邏輯上相鄰的元素在物理位置上也是相鄰的,所以要想在元素3之後插入元素5的話,需要將之後的所有元素均後移,示意圖如下:
在這裏插入圖片描述

②刪除元素

同理,刪除元素5以後,需要將元素5之後的所有元素往前移,示意圖如下:
在這裏插入圖片描述

5、總結

(1)數組支持隨機訪問,所以數組查詢元素速度很快;
(2)數組的增刪需要移動大量數據元素(大部分情況下),所以數組增刪元素很慢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章