您的位置:首页 > 理论基础 > 数据结构算法

大话数据结构(四) 栈和队列

2014-03-17 16:40 162 查看
栈:一种线性表,限定只能在表尾进行插入和删除的操作。这里的表尾指的是栈顶,LIFO结构。

两栈共享空间的数据结构一般用在两个栈的空间需求有相反关系时,也就是一个栈在增长时另一个栈在缩短的情况,但是前提是两个栈具有相同的数据类型。

迭代和递归:迭代使用的是循环结构,递归使用的是选择结构。递归必须至少有一个条件,当条件满足时,递归不再进行。

中缀表达式转化为后缀表达式(逆波兰表示,RPN)

队列:只允许在一端进行插入操作,在另一端进行删除操作的线性表。FIFO

循环队列:解决队列的假溢出。为了避免数组插入和删除时需要移动数据,于是引入了循环队列,是的队头和队尾可以在数组中循环变化。解决了移动数据的时间损耗,使得本来插入和删除是O(n)的时间复杂度变成了O(1)。

两种队列满的判断:

1  有标志位flag,此时满队列没有空余的元素空间;

2  可以保留一个元素空间,此时的队列满的条件:(rear+1)%QueueSize = = front;

计算队列长度的公式:(rear-front+QueueSize)%QueueSize
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: