第二講
什么是線性表
由同類型數據元素構成的有序序列結構。線性表可以用順序存儲結構,也可以使用鏈式存儲結構。
鏈式結構的插入刪除復雜度低,順序存儲隨機訪問更快,并且在很多收順序存儲的空間利用率比較低,浪費內存空間。
什么是廣義表
廣義表是相對線性表而言的,線性表的元素是數據元素,而廣義表的元素可能還是一個線性表。
例子:十字列表存儲矩陣。
線性表:堆棧
例子:算術表達式的計算,后綴表達式。
堆棧操作:
- 只能從一端添加/刪除數據。(入棧/出棧)
- 遵循后入先出
一個注意的點:堆棧用單向列表(鏈式結構存儲),選用表頭作為入棧出棧端口。
應用:函數的遞歸,深度優先搜索,回溯算法。
線性表:隊列
例子:
隊列操作:
- 只能在一端增加,在另一端刪除。
- 遵循先進先出。
同樣在鏈式隊列中,怎么選擇隊頭和隊尾。