双端队列
双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的抽象数据类型。双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。
操作
双端队列可以在队列任意一端入队和出队。此外,经常还会有一个查看(Peek)操作,返回该端的数据而不将其出队。
操作的名称依语言的不同而不同;主流实现包括:
操作 | 常见名称 | Ada | C++ | Java | Perl | PHP | Python | Ruby | JavaScript |
---|---|---|---|---|---|---|---|---|---|
尾部插入 | inject, snoc | Append |
push_back |
offerLast |
push |
array_push |
append |
push |
push
|
头部插入 | push, cons | Prepend |
push_front |
offerFirst |
unshift |
array_unshift |
appendleft |
unshift |
unshift
|
尾部删除 | eject | Delete_Last |
pop_back |
pollLast |
pop |
array_pop |
pop |
pop |
pop
|
头部删除 | pop | Delete_First |
pop_front |
pollFirst |
shift |
array_shift |
popleft |
shift |
shift
|
查看尾部 | Last_Element |
back |
peekLast |
$array[-1] |
end |
<obj>[-1] |
last |
<obj>[<obj>.length - 1]
| |
查看头部 | First_Element |
front |
peekFirst |
$array[0] |
reset |
<obj>[0] |
first |
<obj>[0]
|
外部链接
- [//web.archive.org/web/20071012044025/http://java.sun.com/javase/6/docs/api/java/util/Deque.html 页面存档备份,存于互联网档案馆)
- C++ deque (页面存档备份,存于互联网档案馆)
这是一篇与计算机相关的小作品。您可以通过编辑或修订扩充其内容。 |