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

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

根據 取出 指針 插入 特殊性 邏輯 排序 存儲結構 mar

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

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

2、邊長的線性結構存儲結構、大多實現為鏈接式存儲結構。數據結點之間的邏輯關系是以指針來表示的。

兩者的比較

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

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

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

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

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

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

限制存取點的表

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

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

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

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

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