大话数据结构(四) 栈和队列
2014-03-17 16:40
162 查看
栈:一种线性表,限定只能在表尾进行插入和删除的操作。这里的表尾指的是栈顶,LIFO结构。
两栈共享空间的数据结构一般用在两个栈的空间需求有相反关系时,也就是一个栈在增长时另一个栈在缩短的情况,但是前提是两个栈具有相同的数据类型。
迭代和递归:迭代使用的是循环结构,递归使用的是选择结构。递归必须至少有一个条件,当条件满足时,递归不再进行。
中缀表达式转化为后缀表达式(逆波兰表示,RPN)
队列:只允许在一端进行插入操作,在另一端进行删除操作的线性表。FIFO
循环队列:解决队列的假溢出。为了避免数组插入和删除时需要移动数据,于是引入了循环队列,是的队头和队尾可以在数组中循环变化。解决了移动数据的时间损耗,使得本来插入和删除是O(n)的时间复杂度变成了O(1)。
两种队列满的判断:
1 有标志位flag,此时满队列没有空余的元素空间;
2 可以保留一个元素空间,此时的队列满的条件:(rear+1)%QueueSize = = front;
计算队列长度的公式:(rear-front+QueueSize)%QueueSize
两栈共享空间的数据结构一般用在两个栈的空间需求有相反关系时,也就是一个栈在增长时另一个栈在缩短的情况,但是前提是两个栈具有相同的数据类型。
迭代和递归:迭代使用的是循环结构,递归使用的是选择结构。递归必须至少有一个条件,当条件满足时,递归不再进行。
中缀表达式转化为后缀表达式(逆波兰表示,RPN)
队列:只允许在一端进行插入操作,在另一端进行删除操作的线性表。FIFO
循环队列:解决队列的假溢出。为了避免数组插入和删除时需要移动数据,于是引入了循环队列,是的队头和队尾可以在数组中循环变化。解决了移动数据的时间损耗,使得本来插入和删除是O(n)的时间复杂度变成了O(1)。
两种队列满的判断:
1 有标志位flag,此时满队列没有空余的元素空间;
2 可以保留一个元素空间,此时的队列满的条件:(rear+1)%QueueSize = = front;
计算队列长度的公式:(rear-front+QueueSize)%QueueSize
相关文章推荐
- 《大话数据结构》读书笔记之 队列抽象数据类型(数组实现循环队列)
- 《大话数据结构》学习笔记之顺序队列及其源码
- 《大话数据结构》第四章 队列
- 对于线性表,栈与队列,串的读书笔记《大话数据结构》
- 大话数据结构 --栈和队列
- [读书笔记]-大话数据结构-4-栈与队列(一)-栈、共享栈和链栈
- 大话数据结构 第四章 栈与队列 (读书笔记)
- 预习《大话数据结构》队列
- 《大话数据结构》读书笔记之链式队列和源码
- 大话数据结构—栈与队列
- 大话数据结构--第四章 栈与队列
- 大话数据结构 - 栈与队列
- 《大话数据结构》第四章栈与队列
- 大话数据结构 code 第四章 05顺序队列_Queue
- 大话数据结构 code第四章 06链队列_Link
- 大话数据结构八:队列的顺序存储结构(循环队列)
- [读书笔记]-大话数据结构-4-栈与队列(二)-队列
- 【大话数据结构】特殊线性表:栈与队列
- 大话数据结构2 - 栈和队列
- 大话数据结构——队列的链式存储结构