雙端隊列
雙端隊列(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 (頁面存檔備份,存於網際網路檔案館)
這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |