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

栈:一种线性表,限定只能在表尾进行插入和删除的操作。这里的表尾指的是栈顶,LIFO结构。


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


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


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


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


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


两种队列满的判断:

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

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

计算队列长度的公式:(rear-front+QueueSize)%QueueSize

你可能感兴趣的:(大话数据结构(四) 栈和队列)