定义
队列也是一种线性数据结构,与数组相比,队列对应的操作是数组的子集。
特点
只能从一端 (队尾) 添加元素,只能从另一端 (队首) 取出元素。
应用
队列的应用可以在播放器上的播放列表,数据流对象,异步的数据传输结构(文件IO,管道通讯,套接字等)上体现,当然最直观的的就是排队了。
接口 | 说明 | 复杂度 |
---|---|---|
void enqueue(E e) | 入队 | O(1) 均摊 |
E dequeue() | 出队 | O(n) |
E getFront() | 获取队首元素 | O(1) |
int getSize() | 获取队列元素个数 | O(1) |
boolean isEmpty() | 判断队列是否为空 | O(1) |
入队是从队尾开始,有可能触发resize,因此均摊下来是O(1)。出队是在队首,数组实现每次都要挪动所有元素,复杂度是O(n)。