1. 程式人生 > >資料儲存的常用結構 堆疊、佇列、陣列、連結串列

資料儲存的常用結構 堆疊、佇列、陣列、連結串列

資料儲存的常用結構有:堆疊、佇列、陣列、連結串列。我們分別來了解一下: 堆疊,採用該結構的集合,對元素的存取有如下的特點:
  • 先進後出(即,存進去的元素,要在後它後面的元素依次取出後,才能取出該元素)。例如,子彈壓進彈夾,先壓進去的子彈在下面,後壓進去的子彈在上面,當開槍時,先彈出上面的子彈,然後才能彈出下面的子彈。
  • 棧的入口出口的都是棧的頂端位置
  • 壓棧:就是存元素。即,把元素儲存到棧的頂端位置,棧中已有元素依次向棧底方向移動一個位置。
  • 彈棧:就是取元素。即,把棧的頂端位置元素取出,棧中已有元素依次向棧頂方向移動一個位置。

佇列,採用該結構的集合,對元素的存取有如下的特點:
  • 先進先出
    (即,存進去的元素,要在後它前面的元素依次取出後,才能取出該元素)。例如,安檢。排成一列,每個人依次檢查,只有前面的人全部檢查完畢後,才能排到當前的人進行檢查。
  • 佇列的入口、出口各佔一側。例如,下圖中的左側為入口,右側為出口。

陣列,採用該結構的集合,對元素的存取有如下的特點:
  • 查詢元素快:通過索引,可以快速訪問指定位置的元素
  • 增刪元素慢: 指定索引位置增加元素:需要建立一個新陣列,將指定新元素儲存在指定索引位置,再把原陣列元素根據索引,複製到新陣列對應索引的位置。如下圖
  • 指定索引位置刪除元素:需要建立一個新陣列,把原陣列元素根據索引,複製到新陣列對應索引的位置,原陣列中指定索引位置元素不復制到新陣列中。如下圖

連結串列,採用該結構的集合,對元素的存取有如下的特點:
  • 多個節點之間,通過地址進行連線。例如,多個人手拉手,每個人使用自己的右手拉住下個人的左手,依次類推,這樣多個人就連在一起了。
  • 查詢元素慢:想查詢某個元素,需要通過連線的節點,依次向後查詢指定元素
  • 增刪元素快
增加元素:操作如左圖,只需要修改連線下個元素的地址即可。 刪除元素:操作如右圖,只需要修改連線下個元素的地址即可。