学习数据结构与算法的参考书是《数据结构与算法分析c++描述》一书。
首先看的是最基本的ADT(抽象数据结构)表、栈、队列。
1、表:是一种有限且有序的序列。实现的方式有两种:数组(所有操作都可以用数组来实现,查找功能、在表尾插入数据删除数据很方便);链表(每个数据不必存在连续存储,插入、删除数据很方便)。
2、栈: 限制数据插入和删除只能在一个位置上进行,就是表的末端,即栈顶(特点先进后出);用数组和链表(单链表即可)对所有操作(只有push、pop(top)操作)都是常数时间。
3、队列:插入(表的末尾)在一端进行,删除(表的开头)在另一端进行。特点:先进先出;用数组和链表(单链表)实现对所有的操作都是常数时间的。但需注意:用数组实现时,多用的循环数组。
用循环数组实现时,需要注意的细节问