一、順序表
1、順序表的定義
線性表的順序存儲又稱爲順序表,它是用一組地址連續的存儲單元,依次存儲線性表中的數據元素。從而使得邏輯上相連的兩個元素在物理上也是相鄰的。表中元素的邏輯順序與物理順序相同。
2、線性表的順序存儲表示
3、線性表順序存儲類型描述
4、順序表的特點
-
順序表的主要特點是隨機訪問,即通過首地址和元素序號可以在O(1) 的時間內找到指定元素。
-
順序表的存儲密度高,每個節點只存儲數據元素。
-
順序表邏輯上相鄰的元素物理上也相鄰,所以插入和刪除操作需要移動大量元素。
二、順序表的基本操作實現
1、插入操作:ListInsert(&L , i , e)
在順序表L的第 i (1=< i && i <= L.length + 1 ) 個位置插入新元素e.如果 i 的輸入不合法則返回false,表示插入失敗;否則將順序表的第 i 個元素以及其後所有元素右移一個位置,插入元素 e ,順序表長度加 1,插入成功返回true.
2、刪除操作 : ListDelete(SqList &L , int i, int &e)
刪除順序表L中第 i 個位置的元素,成功返回true,並將被刪除的元素用引用變量e 返回。
3、按值查找(順序查找):LocateElem(SqList L ,ElemType e)
在順序表L中查找第 一個元素值等於 e ,並返回其位序。
(1)時間複雜度計算:
最好情況:查找的元素就在表頭時間複雜度爲O(1)
最壞情況:查找的元素在表尾時間複雜度爲O(n)
平均情況:時間複雜度爲T(n) = O(n)