下面是實(shí)現(xiàn)雙向隊(duì)列的代碼
ps.以下內(nèi)容摘自其它論壇 本人只是個(gè)代碼搬運(yùn)工
/**
* PHP實(shí)現(xiàn)雙向隊(duì)列 雙端隊(duì)列
* 雙端隊(duì)列 (deque 全名double-ended queue) 是一種具有隊(duì)列和棧性質(zhì)的數(shù)據(jù)結(jié)構(gòu)
* 雙端隊(duì)列中的元素可以從兩端彈出 插入和刪除操作限定在隊(duì)列的兩邊進(jìn)行
*/
class Deque {
// 隊(duì)列存儲(chǔ)
public $queue = array();
/**
* 構(gòu)造函數(shù)初始化隊(duì)列
*/
public function __construct($queue = array()) {
if (is_array($queue)) {
$this->queue = $queue;
}
}
/**
* front
* 獲取第一個(gè)元素
*/
public function front() {
return reset($this->queue);
}
/**
* back 獲取第一個(gè)元素
*/
public function back() {
return end($this->queue);
}
/**
* isEmpty 判斷是否為空
*/
public function isEmpty() {
return empty($this->queue);
}
/**
* size 隊(duì)列大小
*/
public function size() {
return count($this->queue);
}
/**
* pushBack 插入到尾部
*/
public function pushBack($val) {
array_push($this->queue, $val);
}
/**
* pushFront 插入到頭部
*/
public function pushFront($val) {
array_unshift($this->queue, $val);
}
/**
* popBack 移除最后一個(gè)元素
*/
public function popBack() {
array_pop($this->queue);
}
/**
* popFront 移除第一個(gè)元素
*/
public function popFront($val) {
array_shift($this->queue);
}
/**
* clear 清空隊(duì)列
*/
public function clear() {
$this->queue = array();
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者