資料結構?

半紙淵發表於2017-12-14

本文內容:
1、什麼是資料結構?
2、為什麼要學習資料結構?
3、資料結構學習 我的文集列表.


看看大家怎麼講? Wiki:Data structure 百度百科:資料結構 知乎:學習資料結構有什麼用?

1、什麼是資料結構?

資料結構與具體程式設計無關,與具體的平臺也無關

資料結構:在計算機領域,是研究如何在計算機中組織資料的方法。

補充:資料,在計算機領域,指代數值、字元等內容,對應整型、字元等基礎資料型別。

資料結構可以實現一種或多種抽象資料型別,而抽象資料型別(Abstract Data Type [ADT])就是一種數學的抽象,一些操作的集合【插入、刪除等操作】,我們常說的連結串列、棧、佇列等就是抽象資料型別。

補充:當然像 C 語言中的結構體、聯合體、陣列,或者 C++/Jave/Objective-C/Swift 等設計語言中的 Class [類] 都是資料結構。


2、為什麼要學習資料結構?

知識沒有用?
不是因為知識沒有用,而是因為你沒有使用知識,所以是你沒用。 --- 一位清華大學的語文老師【因為時間太久,那個視訊我已經找不到了】

1、訓練自己組織具體資料的方法,來解決程式設計中具體資料操作的問題;
2、建立一種在程式設計過程中,時時關注與思考資源空間、操作效率、資料組織的思維;
3、為實際問題,寫出更小更高效更適合的程式;
4、應該還沒有列完!!!


###3、資料結構學習之我的文集列表.

工程程式碼 Github: Data_Structures_C_Implemention

基礎:
第一篇:《資料結構:連結串列》
第二篇:《資料結構:棧與佇列》
第三篇:《資料結構:集合》
第四篇:《資料結構:雜湊表 [雜湊表]》 (進行中...)
第五篇:《資料結構:樹、二叉(搜尋)樹、AVL 樹》 (未寫)
第六篇:《資料結構:堆與優先佇列》 (未寫)
第七篇:《資料結構:圖》 (未寫)
第八篇:《資料結構:B-樹》 (未寫)
第九篇:《資料結構:伸展樹》 (未寫)

高階:
第十篇:《資料結構:紅黑樹、AA-樹》 (未寫)
第十一篇:《資料結構:斐波那契堆》 (未寫)
第十二篇:《資料結構:樹堆(Treap 樹)、k-d 樹(k-維樹)》 (未寫)
第十三篇:《資料結構:線段樹 (Van Emde Boas Tree)》 (未寫)
第十四篇:《資料結構:不相交集》 (未寫)
第十五篇:《資料結構:配對堆》 (未寫)


參考書籍:
1、《演算法精解_C語言描述(中文版)》
2、《資料結構與演算法分析 — C語言描述》
3、《演算法導論》(第3版)

相關文章