1. 程式人生 > >第二章之線性表、棧、佇列和線性表

第二章之線性表、棧、佇列和線性表

線性表的儲存結構(主要有兩種):

1、定長的順序儲存結構,也稱順序表或向量型的一維陣列結構。資料結點之間的邏輯關係是通過資料結點的儲存位置來反映的。

2、邊長的線性結構儲存結構、大多實現為連結式儲存結構。資料結點之間的邏輯關係是以指標來表示的。

兩者的比較

1、順序表的主要優點體現在沒有使用指標,節省儲存空間,而且線性表元素的讀訪問非常簡潔便利。、

2、連結串列的主要優點則體現在無需事先確定線性表的長度,可以根據需要動態申請,且允許線性表的長度有很大變化,能夠適應線上性表中經常插入、刪除內部元素的情況。

棧:棧是一種限制訪問埠的線性表,常被稱為後進先出表(LIFO表)。其元素的插入和刪除都只在表的一段進行,該端也稱為棧的“棧頂”,另一端叫做“棧底”。

棧得到特點是每次取出(並被刪除)的元素總是剛進棧的、最後壓如的元素,而最先壓如的元素則是被放在棧的底部,要到最後才能取出。

佇列:佇列也是一種特殊的、限制訪問埠的線性表,常被稱為先進先出表(FIFO表)。其元素的刪除只限於在表的一端進行,該端稱為佇列的“頭而元素的插入則被限制於另一端,“此端叫做佇列的“尾”

  佇列的特點是新來的成員總是加入到隊的末尾,而每次取出的元素總是來自佇列的前端,即先來先服務,在佇列裡最老的成員先出去。

限制存取點的表

1、雙端佇列:限制插入和刪除線上性表的兩端進行

2、超佇列、一種刪除受限的雙端佇列,刪除只允許在一端進行,而插入可在兩端進行

字串:由零個或多個字元順序排序組成的有限序列。它是一種特殊的線性表,其特殊性主要體現在組成表的每個元素均為一個字元,以及與此相應的一些特殊操作。

字串的模式匹配:KMP演算法