推荐:数据结构与算法教程(通俗易懂,深入浅出,摒弃教条主义,以“生动有趣”的笔风来讲解每个知识点)
数据结构是基础,随着你对编程进一步的探索,你会发现很多 高性能的库、框架 的底层实现都用到了数据结构的思想,像stl库、并发编程epoll等
只知道用一样东西,不明白他的道理,实在不高明 ,所以说数据结构这种基础是必须要掌握的。无论在哪个领域,要抓住问题的本质,切勿停留在表面,要不断地深入下去。
数据结构:大概在17年的时候在看过imooc上看过数据结构探险相关课程讲解,讲的不错,视频不懂的多看几遍,顺手敲了遍代码,基本的数据结构就通了,这里有相关的代码,感兴趣的同学可以去看下;
上边主要是数据结构的介绍,算法(各种排序、递归、动态规划、最优解问题等等)相关的并没有涉及,最近准备复习下相关数据结构的知识,顺便把算法重点学习下,参考的书籍为《大话数据结构》这本书,学习的方法还是手敲代码,编译调试。
/*简单总结,这本书一共为9章,前两章是扯淡篇,第3章"线性表",第4章“栈与队列”,第5章“串”主要是字符串的快速匹配方法,kmp,6.“树”主要说下二叉树,7.“图”、8.“查找”9.“排序”,这样看一本书就简单多了*/
目录:
- 数据结构与算法-开胃小菜
- 线性表之顺序存储结构
- 线性表之链式存储结构(单链表)
- 线性表之静态链表(去掉指针的单链表)
- 简说循环链表和双向链表
- 栈的顺序存储结构及实现
- 栈的链式存储结构及实现
- 栈的应用-----递归(斐波那契数列)
- 顺序队列、循环队列、链队列
- 字符串的基本认识
- 树的抽象数据类型和几种表示法
- 二叉树
- 遍历二叉树
- 查找---顺序查找及优化(“哨兵”优化)
- 顺序查找高效方法---二分查找、插值查找、斐波那契数列查找
- 线性索引查找---稠密索引、分块索引、倒排索引
- 二叉排序树的查找、插入、删除操作
- 平衡二叉树(AVL树)、多路树查找(B树)概念
- 散列表(哈希表)查找
- 排序之冒泡、直插、希尔排序方法
- 快速排序实现(快排)
- c++ stl中常用的数据结构原理与区别
写点学习方法感想:
大家都知道数据结构和算法是很烧脑的事情,就像看悬疑小说一样,哈哈;
我这边一般就是一边看,一边把代码手打一边,把书上重要的知识点记录一下,手打的过程中其实就能较好的理解一些设计的思路,看书看一遍其实很快就会忘记,写代码主要的还是需要你的逻辑、理解及动手能力。