队列
与栈相似,队列也是顺序存储元素的线性数据结构,但队列是先进先出。
操作
插入:put,add,enque
删除:delete,get,deque 插入数据项的队尾:back,tail,end 移除数据项的队头:head
查看:peek,返回队头数据项的值,并不从队中删除这个项。
新建:new 队空移除,队满插入都会报错。 Enqueue,Dequue,isEmpty,top
队列的效率 和栈一样,队列中插入数据项和移除数据项的时间复杂度均为O(1)
双端队列 是 一 个 两 端 都 是 结 尾 的 队 列 , 队 列 的 每 一 端 都 可 以 插 入 数 据 项 和 移 除 数 据 项 , 方 法 有 inserLeft(),insertRight(),removeLeft(),removeRight(),虽然双端队列是一种多用途的数据结构,在 容器类库中有时会提供栈和队列两种功能,但是双端队列并不常用。
总结: 在栈,队列,优先级队列这些数据结构中,只有一个数据项可以被访问,栈允许访问最后一个插入数据 项,栈中重要的操作是在栈顶压入一个数据项和在栈顶移除一个数据项。队列只允许访问第一个插入的 数据项,队列的重要操作是在队尾插入数据项和在队头移除数据项。队列可以实现为循环队列,它基于 数组,数组下标可以从数组末端回绕到数组的开始位置。
优先级队列允许访问最小或最大的数据项,这 些数据结构可以用数组或者其他机制如链表来实现。
实战
使用队列表示栈的核心方法