資料結構——開篇

weixin_34321977發表於2018-02-07

在開發過程中,時刻都在和各式各樣的資料打交道,在處理資料的過程中,我們經常從兩方面進行考慮:

  • 資料之間的關係是什麼
  • 資料怎麼儲存

而資料結構,就是使用計算機來儲存、組合資料的方式。資料結構在軟體開發中無處不在,從底層的作業系統到編譯器的語法和詞法分析,再到函式呼叫,再到上層的應用開發,都要和資料結構打交道,資料結構貫穿了整個軟體開發的始終。

討論資料結構的兩個維度

前面說到,我們在處理資料的過程中,需要從資料之間的關係和資料的儲存方式上進行考慮。當我們從資料之間的關係進行考慮時,我們是在討論資料的邏輯結構,當我們從資料的儲存方式上進行考慮時,我們是在討論資料的儲存結構。這就是討論資料結構的兩個維度。
從這兩個維度上考慮,在開發時邏輯會更加清楚一些。良好的資料結構,會在加快開發效率的同時,也提高程式的執行效率。

資料結構的分類

從邏輯結構上進行分類,我們可以把資料結構分為以下三種結構:

  • 集合
  • 線性結構
  • 非線性結構

從儲存結構上進行分類,我們可以把資料結構分為以下四個結構:

  • 順序儲存結構
  • 鏈式儲存結構
  • 索引儲存結構
  • 雜湊儲存結構

每個分類還可以繼續進行劃分,比如線性結構可以再分為棧、佇列、串等,鏈式儲存結構可以再分為單向連結串列、雙向連結串列、迴圈連結串列等。它們之間的關係如下圖所示:


3831834-4d86ec7888f68f87.png
資料結構分類

後續的文章中,會依次介紹這些資料結構。

完。

相關文章