具有相同特性的資料元素組成的有限序列 稱為線性表。線性表是最基本、最簡單、使用最廣的一種資料結構。
線性表根據資料元素的儲存結構型別分為順序儲存和鏈式儲存,這兩種型別分別對應於順序表和鏈式表(鍊錶)。順序表組成的元素位址是連續,鍊錶組成的元素位址是非連續的。鍊錶又可以進一步分為單鏈表、雙鏈表、迴圈鍊錶、靜態鍊錶。
順序表和煉表特點對比對比。
順序錶鏈表
儲存位址
連續非連續
儲存空間
靜態分配
通常為動態分配
儲存密度
=1<1
訪問結構
隨機訪問和順序儲存
順序訪問
查詢時間複雜度
o(1)
o(n)
插入、刪除時間複雜度
o(n)
o(1)
通過對比順序表和鏈式表,兩者的主要差別體現在儲存結構上。
順序表的元素儲存於一段連續的儲存空間上,表現出來的特點是:
鏈式表的元素儲存空間是非連續的,表現出來的特點是:
通過對比線性表和鏈式表的特點,兩者的優缺點互補,適用的場景也不一樣。
線性表適用場景:
鍊錶適用場景:
c語言下的順序表(陣列),是不支援動態記憶體分配的,因此,記憶體使用上不夠靈活,表的長度也是固定的。在c++語言下,順序表是支援可變長度的,即是支援動態記憶體分配。如stl的順序容器。
的原理是首先開闢一段記憶體用於存放元素集合;集合已滿的情況下,當再新插入資料的時候,則分配一塊更大的記憶體空間,並將原來的資料拷貝到該記憶體空間,接著釋放之前申請的記憶體,最後插入新增的元素。
資料結構 線性表概念 順序儲存
資料的邏輯結構可分為 線性結構 線性表 棧和佇列 串 陣列與廣義表 非線性結構 樹 圖 線性表 線性結構 線性結構是最簡單,最直接的資料關係,資料元素之間一一對應 線性表的定義 線性表是由n個型別相同的資料元素組成的有序序列 記做 a1,a2,a3,a4,an n是線性表長度 n 0稱為空表 n 0...
資料結構 線性表 順序表
豐富了前邊的功能,更加完善。include include define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 using namespace std const int overflow 2 ty...
資料結構 線性表 順序表
線性表是具有相同特性的資料元素的乙個有限序列。線性表的順序儲存結構是,把線性表中的所有元素按照其邏輯順序依次儲存到從計算機儲存器中指定的儲存位置開始的一塊連續的儲存空間。include include include define maxsize 50 using namespace std 假設l...