双端队列

抽象数据类型

双端队列(deque,全名double-ended queue)是一种具有队列性质的抽象数据类型。双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两邊进行。

操作

双端队列可以在队列任意一端入队出队。此外,经常还会有一个查看(Peek)操作,返回该端的数据而不将其出队。

操作的名称依语言的不同而不同;主流实现包括:

操作常见名称AdaC++JavaPerlPHPPythonRubyJavaScript
尾部插入inject, snocAppendpush_backofferLastpusharray_pushappendpushpush
头部插入push, consPrependpush_frontofferFirstunshiftarray_unshiftappendleftunshiftunshift
尾部删除ejectDelete_Lastpop_backpollLastpoparray_poppoppoppop
头部删除popDelete_Firstpop_frontpollFirstshiftarray_shiftpopleftshiftshift
查看尾部Last_ElementbackpeekLast$array[-1]end<obj>[-1]last<obj>[<obj>.length - 1]
查看头部First_ElementfrontpeekFirst$array[0]reset<obj>[0]first<obj>[0]

外部链接