作為開發人員,經常會在專案中遇使用到佇列,而有時候需要自己單獨實現佇列機制,而也有部分新手對與佇列認識不清晰,本教程,從**上,直觀的展示了佇列的實現 和使用過程。<?php/**
*@function
雙向佇列實現**
*@author
yg-w**
@date
2017-12-23**/
classqueue
return self::
$instance;}
/***
@function
入隊-首部**
@param
$val
** @desc:
* 需要注意的是,要向佇列的首位插入新的值,則需要先將該佇列的所有元素位置向後移
** 動一位,完成後,在最後空下來的第乙個位置插入新的值。**
@return
boolean
*/public functionpush_first
($val
)/**
*@function
入隊-尾部**
@param
$val**
@return
boolean**/
public functionpush_last
($val
)/**
*@function
出隊-首位
** @desc
* 需要注意的是,每次從首位置刪除乙個元素後,需要將佇列中所有剩餘的元素向前移動一位。
*
**
@return
string
*/public functionpop_first
()/**
*@function
出隊-尾部**
@return
string**/
public functionpop_last
()/****
@function
檢視佇列當前情況( 僅用於測試 )**
@return
array**/
public functionget_list()}
//例項化佇列類
$queue
= queue::
getinstance();
/*** 從佇列首位入隊: $queue->push_first()
* 從佇列尾部入隊: $queue->push_last()
*///向佇列首位插入20次
for($i=
1;$i<=20;
$i++)
/*** 從前到後出隊: $queue->pop_first()
* 從後到前出隊: $queue->pop_last()
*///從尾部進行出隊操作 : 當佇列中所有元素出隊後,結束執行
while(
$p_val
= $queue
->
pop_last
())
var_dump(
$queue
->
get_list
());
執行結果:入隊
: 1入隊: 2入隊
: 3入隊: 4入隊
: 5入隊: 6入隊
: 7入隊: 8入隊
: 9入隊:
10入隊
: 11
入隊:
12入隊
: 13
入隊:
14入隊
: 15
入隊:
16入隊
: 17
入隊:
18入隊
: 19
入隊:
20出隊: 1
出隊: 2出隊
: 3出隊: 4出隊
: 5出隊: 6出隊
: 7出隊: 8出隊
: 9出隊:
10出隊
: 11
出隊:
12出隊
: 13
出隊:
14出隊
: 15
出隊:
16出隊
: 17
出隊:
18出隊
: 19
出隊:
20array(0)
php 簡單雙向佇列
雙向佇列 classdouble queue 從佇列尾部彈出 public functionfront remove 從佇列尾部壓入 public functionrear add node 從佇列尾部彈出 public functionrear remove 獲取佇列長度 public funct...
php簡單的雙向佇列
class doublequeue 得到陣列的總大小 public function count 將乙個單元壓入陣列尾部 public function queuepush data 將乙個單元壓入陣列開頭 public function queueunshift data 從陣列最後乙個移出 pu...
Deque 雙向佇列 Swift實現
可以像普通佇列一樣,擁有從隊首出隊 從隊尾入隊的特性外,雙向佇列,也可以從隊首入隊,從隊尾出隊。struct deque var count int 從隊尾入隊 mutating func enqueue element t 從隊首入隊 mutating func enqueuefront elem...