diff --git a/数据结构/README.md b/数据结构/README.md new file mode 100644 index 0000000..4ba993c --- /dev/null +++ b/数据结构/README.md @@ -0,0 +1,27 @@ +数据结构与算法复习笔记 +==================== + +## 参考资料 + +> 教材: + ++ 《数据结构(C++ 语言版)》(第三版),邓俊辉,清华大学出版社 ++ 《数据结构习题解析》(第三版),邓俊辉,清华大学出版社 ++ [邓公 MOOC 讲义](https://cloud.tsinghua.edu.cn/d/832a6b169c5d453ba4e2/) + +> MOOC: + ++ [数据结构(上)](https://next.xuetangx.com/course/THU08091000384/4231547?fromArray=search_result),邓俊辉,清华大学 ++ [数据结构(下)](https://next.xuetangx.com/course/THU08091002048/4233477?fromArray=search_result),邓俊辉,清华大学 + +> 其他 + ++ [邓公数据结构网站](https://dsa.cs.tsinghua.edu.cn/~deng/ds/index.htm) + +## 本文件夹组织结构 + +本文件夹严格按照《数据结构(C++ 语言版)》(第三版)教材进行组织,十二个子文件夹分别对应教材中的十二个章节。每个文件夹中包括 + ++ 该章节涉及到的代码(.h 以及 .cpp 文件) ++ 我个人的知识总结(README 以及其他 .md 文件) ++ images 文件夹 diff --git a/数据结构/chp2/README.md b/数据结构/chp2/README.md index 0952409..8229ca7 100644 --- a/数据结构/chp2/README.md +++ b/数据结构/chp2/README.md @@ -13,6 +13,10 @@ 从上面的讨论可以看出,有序向量的相关算法相比于无序向量有了很大的性能改进,如何化无序向量为有序向量就成了下面讨论的问题。这里主要是介绍了两种排序算法,即冒泡排序与归并排序,并且对两种算法都进行了不同程度的优化。最后讨论了如何估计这种基于比较的算法(`CBA`式算法)的复杂度下界,即引入比较树。 +--- + +为了准备考试,我还专门复习了二分查找和斐波拉契查找的查找长度问题,总结在了 [这篇文章](bin_fib_search_len.md) 当中。 + ## Vector是一种抽象数据类型 > 辨析抽象数据类型(ADT, Abstract Data Type)与数据结构之间的区别与联系。 diff --git a/数据结构/chp4/README.md b/数据结构/chp4/README.md index 82db8f8..4149825 100644 --- a/数据结构/chp4/README.md +++ b/数据结构/chp4/README.md @@ -9,6 +9,10 @@ 针对`递归嵌套`问题,本章描述了两个具体的应用,即括号匹配问题与栈混洗问题,这里的关键在于把握两个问题内在的联系,对于两个问题都需要有比较深刻的认识。而`试探回溯`问题则代表了一类算法设计思想:尽量利用问题自身的特性进行剪枝,从而更加高效地找到算法的解,这里的关键在于把握`准绳`和`粉笔`两个工具。 +--- + +复习到了后期,我的认识又有了不少进步,我将这些内容总结在了 [栈与队列相关重点知识](栈与队列相关重点知识.md) 这篇文章中。 + ## 栈的实现 栈的实现用`Vector`或者用`List`都是无所谓的,直接一个`public`的继承就可以了。想说的是如果用`Vector`实现的话注意一下栈顶和栈尾的选择,把栈尾选到`Vector`的起始处,这样压栈和弹栈操作就都是在`Vector`的末端操作,时间复杂度都是$O(1)$。 diff --git a/数据结构/chp4/notice.md b/数据结构/chp4/栈与队列相关重点知识.md similarity index 98% rename from 数据结构/chp4/notice.md rename to 数据结构/chp4/栈与队列相关重点知识.md index 7c22a6d..3438128 100644 --- a/数据结构/chp4/notice.md +++ b/数据结构/chp4/栈与队列相关重点知识.md @@ -1,7 +1,7 @@ 栈与队列相关重点知识 ================== -本篇的内容是栈和队列中的一些较为深入的内容,主要包括栈混洗问题以及中缀表达式求值。需要日后添加合并到`chp4/chp4.md`当中。 +本篇的内容是栈和队列中的一些较为深入的内容,主要包括栈混洗问题以及中缀表达式求值。 ## 中缀表达式求值