目录
前言
这个暑假,手头上有一本关于RL的书,但是实际上数据结构和算法才是这个暑假的学习重点,两边相互进行,这篇是本人在看《大话数据结构》的读书笔记
大话数据结构的代码地址:http://cj723.cnblogs.com
并且,我找到了一些很好的激起兴趣的东西——可视化帮助——https://visualgo.net/en
在看完书以及了解清楚每种数据结构与算法之后 便是 无尽的 刷题之旅
注意
书中的代码使用C90标准代码,比如函数传入参数C++可以传入地址变量(CreateBtree(BiTree &T))但是C90只能是CreateBiTree(BiTree *T) 虽然说我打算之后看完书直接使用STL,但是这里给可能会需要自己实现的小伙伴提醒一下。(照理来说C90低端编译环境应该在高级编译环境中也可以运行)
学习STL的话有两个教程 如果中文好 如果鸟语好 当然C++Primer貌似也有STL的章节,但是只有部分关于STL的基础的描述,没有算法的详细用法介绍,推荐上面的中文教程。
程序设计=好的数据结构+算法
线性表
线性表是十分入门基础的东西,这里就不阐述,线性表可以有以下分类
- 顺序存储结构
- 链式存储结构
- 单链表
- 静态链表(用数组链式存储)
- 循环链表(末结点指向头结点)
- 双向链表(有头指针与尾指针)
PS:大话数据结构是用C写的,当不需要改变链表的值的时候,传入参数可以不用* ,直接值传递就可以了,传入复制的线性表。
栈
栈就是特殊的线性表,只允许对栈顶(链表尾)进行增删操作,OS中用于很多地方,大家比较熟悉的就是程序栈以及在算术运算用到的栈。
RPN逆波兰(后缀表达法)“9+(3-1)*3+10/2”-->“9 3 1 - 3 * + 10