本文內容:
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版)