綜述 ------ 線性表,字符串,棧和隊列

忍不住想給前幾個數據結構進行一下總結。

對於線性表我們分爲順序表和鏈接表,分類的依據是節點的物理存儲關係。順序
中每個節點其物理存儲關係就表現了它的節點的邏輯關係,即每個節點的存儲
空間都是緊挨着,也就是說一個順序表的物理存儲空間就是一大塊物理存儲空間。 而鏈接表通過節點間的鏈接關係將表中的節點聯繫起來,也就是說
其節點間的邏輯關係是由鏈接實現的,存儲上,各個節點並不是緊挨着。

其中順序表又根據它的實現方式分爲兩個類:

  • 一個是一體式順序表, 一個是動態的順序表。

一體式順序表將順序表的信息和節點放在同一存儲塊中,
動態的順序表將順序表的信息和節點的存儲塊分開來存放

python中list就是通過動態的結構實現的。

鏈接表我們很清楚,分爲普通的鏈接表,循環鏈接表,雙向鏈接表,循環雙向鏈接表。

python字符串本質上也是一種線性表的實現,如python中的str類型就是通過一體式順序表
實現的,因爲str是一個不可變類型(當然對於字符串最主要的還是它的匹配
算法,樸素匹配算法和KMP算法)

然後就是棧和隊列,和列表一樣,棧和隊列也是存儲元素的容器,其實,棧和
隊列就是一種特殊的線性表,它允許的操作比較少,是一種侷限性的線性表。
棧和隊列可以使用兩種類型的線性表來實現。

從上面的敘述可以看出來,線性表是絕大多數數據結構的基礎,包括後面的二
叉樹等都可以使用線性表來實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章