資料結構——開篇
在開發過程中,時刻都在和各式各樣的資料打交道,在處理資料的過程中,我們經常從兩方面進行考慮:
- 資料之間的關係是什麼
- 資料怎麼儲存
而資料結構,就是使用計算機來儲存、組合資料的方式。資料結構在軟體開發中無處不在,從底層的作業系統到編譯器的語法和詞法分析,再到函式呼叫,再到上層的應用開發,都要和資料結構打交道,資料結構貫穿了整個軟體開發的始終。
討論資料結構的兩個維度
前面說到,我們在處理資料的過程中,需要從資料之間的關係和資料的儲存方式上進行考慮。當我們從資料之間的關係進行考慮時,我們是在討論資料的邏輯結構,當我們從資料的儲存方式上進行考慮時,我們是在討論資料的儲存結構。這就是討論資料結構的兩個維度。
從這兩個維度上考慮,在開發時邏輯會更加清楚一些。良好的資料結構,會在加快開發效率的同時,也提高程式的執行效率。
資料結構的分類
從邏輯結構上進行分類,我們可以把資料結構分為以下三種結構:
- 集合
- 線性結構
- 非線性結構
從儲存結構上進行分類,我們可以把資料結構分為以下四個結構:
- 順序儲存結構
- 鏈式儲存結構
- 索引儲存結構
- 雜湊儲存結構
每個分類還可以繼續進行劃分,比如線性結構可以再分為棧、佇列、串等,鏈式儲存結構可以再分為單向連結串列、雙向連結串列、迴圈連結串列等。它們之間的關係如下圖所示:
後續的文章中,會依次介紹這些資料結構。
完。
相關文章
- 【資料結構篇】認識資料結構資料結構
- 資料結構與演算法學習-開篇資料結構演算法
- 看得見的資料結構Android版之開篇前言+完篇總結資料結構Android
- [開篇]基礎演算法和資料結構0演算法資料結構
- Redis系列文章-資料結構篇Redis資料結構
- 《Java 高階篇》五:資料結構Java資料結構
- 看得見的資料結構Android版之陣列表(資料結構篇)資料結構Android陣列
- 架構離不開資料結構架構資料結構
- 資料結構第一篇 棧資料結構
- 山鬼的資料結構坑(初篇)資料結構
- JS版資料結構第三篇(連結串列)JS資料結構
- C#資料結構篇(一連結串列類) (轉)C#資料結構
- 資料結構與演算法分析——開篇以及複雜度分析資料結構演算法複雜度
- 樹狀資料結構儲存方式—— CUD 篇資料結構
- 【redis】-- 資料結構及底層編碼篇Redis資料結構
- C#資料結構篇(二 堆疊) (轉)C#資料結構
- 結構化資料、半結構化資料和非結構化資料
- JavaScript 的資料結構和演算法 - 連結串列篇JavaScript資料結構演算法
- 《資料結構與演算法之美》學習筆記之開篇資料結構演算法筆記
- JavaScript 的資料結構和演算法 - 棧篇JavaScript資料結構演算法
- JavaScript 的資料結構和演算法 - 前言篇JavaScript資料結構演算法
- 樹狀資料結構儲存方式——查詢篇資料結構
- 圖解Redis之資料結構篇——壓縮列表圖解Redis資料結構
- 圖解Redis之資料結構篇——整數集合圖解Redis資料結構
- 圖解Redis之資料結構篇——跳躍表圖解Redis資料結構
- JS版資料結構第一篇(棧)JS資料結構
- JS版資料結構第二篇(佇列)JS資料結構佇列
- TypeScript演算法與資料結構-陣列篇TypeScript演算法資料結構陣列
- 資料結構與演算法——基礎篇(一)資料結構演算法
- 資料結構-第一篇:線性表資料結構
- 開源 演算法 資料結構演算法資料結構
- 資料結構小白系列之資料結構概述資料結構
- 資料結構?資料結構
- 資料結構資料結構
- 看得見的資料結構Android版之雙連結串列篇資料結構Android
- 資料結構之連結串列篇(單連結串列的常見操作)資料結構
- 資料結構與演算法-資料結構(棧)資料結構演算法
- JavaScript 的資料結構和演算法 - 陣列篇JavaScript資料結構演算法陣列