数据结构-队列和栈

队列和栈都是逻辑结构,其物理结构可以用数组和链表表示。只要记住队列和栈数据操作的特殊性,我觉得就能掌握队列和栈了。

队列

先进先出。 和实际生活中的排队非常像,后来的人排队尾队头的人先办业务或者先做事情。由此可见队列是有顺序的,但这个顺序也可以根据业务逻辑做调整,如果调整了就叫优先队列,这里说的只是默认顺序。

队列的操作有入队和出队。

考虑到用数组实现队列时,出队操作会使队列有效长度变短,可以用循环队列保持队列的有效循环,此时队列有效长度为数组长度 - 1,当队列满时,队头位置 == (队尾位置 + 1)% 数组长度。

还有一种特殊队列叫双端队列,即两头即可入队也可出队。

先进后出。例如一个羽毛球桶,不停往里放球,但是要从里面拿出来肯定先拿上面的,也就是说早放进去的在下面,晚放进去的在上面,拿的时候上面的先出来。

栈的操作有入栈和出栈。

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