順序表是線性表的一種順序存儲形式。換句話說,線性表是邏輯結構,表示元素之間一對一的相鄰關系;而順序表是存儲結構,是指用一組地址連續的存儲單元,依次存儲線性表中的數據元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。
設順序表的第一個元素 a0 的存儲地址為Loc(a0) ,每個元素占 d 個存儲空間,則第 i 個元素的地址為:
Loc(ai-1)=Loc(a0)+(i-1)*d
順序表在程序中通常用一維數組實現,一維數組可以是靜態分配的,也可以是動態分配的。
在靜態分配時,由於數組的大小和空間是固定的,一旦空間占滿,就無法再新增數據,否則會導致數據溢出。
而在動態分配時,存儲數組的空間在程序執行過程中會動態調整大小,當空間占滿時,可以另行開辟更大的存儲空間來儲存數據。
順序表最主要的特點是可以進行隨機訪問,即可以通過表頭元素的地址和元素的編號(下標),在 O(1)的時間復雜度內找到指定的元素。
順序表的不足之處是插入和刪除操作需要移動大量的元素,從而保持邏輯上和物理上的連續性。
順序表基本操作:構造,插入,擴容,查找,刪除,遍歷