docs: add a README to '数据结构/' dir; add links to some .md files in chp2, 4's README.

This commit is contained in:
xun34
2020-08-16 23:15:34 +08:00
parent 124561e8fd
commit 7ee8466da5
4 changed files with 36 additions and 1 deletions

27
数据结构/README.md Normal file
View File

@@ -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 文件夹

View File

@@ -13,6 +13,10 @@
从上面的讨论可以看出,有序向量的相关算法相比于无序向量有了很大的性能改进,如何化无序向量为有序向量就成了下面讨论的问题。这里主要是介绍了两种排序算法,即冒泡排序与归并排序,并且对两种算法都进行了不同程度的优化。最后讨论了如何估计这种基于比较的算法(`CBA`式算法)的复杂度下界,即引入比较树。
---
为了准备考试,我还专门复习了二分查找和斐波拉契查找的查找长度问题,总结在了 [这篇文章](bin_fib_search_len.md) 当中。
## Vector是一种抽象数据类型
> 辨析抽象数据类型(ADT, Abstract Data Type)与数据结构之间的区别与联系。

View File

@@ -9,6 +9,10 @@
针对`递归嵌套`问题,本章描述了两个具体的应用,即括号匹配问题与栈混洗问题,这里的关键在于把握两个问题内在的联系,对于两个问题都需要有比较深刻的认识。而`试探回溯`问题则代表了一类算法设计思想:尽量利用问题自身的特性进行剪枝,从而更加高效地找到算法的解,这里的关键在于把握`准绳``粉笔`两个工具。
---
复习到了后期,我的认识又有了不少进步,我将这些内容总结在了 [栈与队列相关重点知识](栈与队列相关重点知识.md) 这篇文章中。
## 栈的实现
栈的实现用`Vector`或者用`List`都是无所谓的,直接一个`public`的继承就可以了。想说的是如果用`Vector`实现的话注意一下栈顶和栈尾的选择,把栈尾选到`Vector`的起始处,这样压栈和弹栈操作就都是在`Vector`的末端操作,时间复杂度都是$O(1)$。

View File

@@ -1,7 +1,7 @@
栈与队列相关重点知识
==================
本篇的内容是栈和队列中的一些较为深入的内容,主要包括栈混洗问题以及中缀表达式求值。需要日后添加合并到`chp4/chp4.md`当中。
本篇的内容是栈和队列中的一些较为深入的内容,主要包括栈混洗问题以及中缀表达式求值。
## 中缀表达式求值