我们数据结构的课用了这本英文教材,作者是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语言描述》复习——第十章“算法设计技巧”——拿石头游戏