我們數據結構的課用了這本英文教材,作者是Mark Allen Weiss。總體來說比《算法導論》簡單很多,但內容上交集非常大。其實是因為去掉了大多數證明和數學,對於沒有耐心看符號和公式的人,顯得更友好,更通俗。其中的代碼實現很靠譜,照着敲出來基本正確可運行,這點尤其適合入門者。
不過現在讀《算法導論》以后,感到還是應該沉下心來和公式、定理神馬的打打交道。Mark Allen Weiss這本書確實適合大一和大二的同學看,大三就不適合了。
深深地明白了為什么大神說“算法導論其實很淺顯”,是數學底子薄弱導致我無法感受到它的淺顯。
下面是已經寫過的讀書筆記。
其中的高級數據結構部分我稍后會補上的,即使不常用,很繁瑣,也力求親手實現一遍吧。畏難情緒和拖延症是目前的兩大對手。
相關源碼可以在此找到:https://github.com/zhuli19901106/Data-Structures-and-Algorithm-Analysis-in-C
《數據結構與算法分析:C語言描述》復習——第三章“線性表、棧和隊列”——雙向鏈表
《數據結構與算法分析:C語言描述》復習——第三章“線性表、棧和隊列”——隊列
《數據結構與算法分析:C語言描述》復習——第三章“線性表、棧和隊列”——單向鏈表
《數據結構與算法分析:C語言描述》復習——第三章“線性表、棧和隊列”——棧
《數據結構與算法分析:C語言描述》復習——第四章“樹”——二叉樹
《數據結構與算法分析:C語言描述》復習——第四章“樹”——二叉搜索樹
《數據結構與算法分析:C語言描述》復習——第四章“樹”——AVL樹
《數據結構與算法分析:C語言描述》復習——第四章“樹”——伸展樹
《數據結構與算法分析:C語言描述》復習——第五章“堆”——二叉堆
《數據結構與算法分析:C語言描述》復習——第六章“排序”——冒泡排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——選擇排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——插入排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——希爾排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——堆排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——歸並排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——快速排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——桶排序
《數據結構與算法分析:C語言描述》復習——第六章“排序”——基數排序
《數據結構與算法分析:C語言描述》復習——第七章“哈希”——哈希表
《數據結構與算法分析:C語言描述》復習——第八章“並查集”——並查集
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——拓撲排序
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——無權值的最短路徑問題
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——單源帶權最短路徑問題
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——多源最短路徑問題
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——最大流問題
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——Prim算法
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——Kruskal算法
《數據結構與算法分析:C語言描述》復習——第九章“圖論”——割點
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——Huffman編碼
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——平面最近點對
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——Strassen矩陣乘法
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——矩陣連乘問題
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——質數檢驗
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——收費站重建問題
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——跳表
《數據結構與算法分析:C語言描述》復習——第十章“算法設計技巧”——拿石頭游戲