双向队列:既能头部入也能尾部入,既能头部出也能尾部出
<?php
class Queue {
private $array = array(); //声明空数组
private $max_num = 2; //最大入队个数
//头入列
public function setFirst($item){
if($this->queueConut() < $this->max_num){
return array_unshift($this->array,$item);
}
echo '队列已经满了';
}
//头出列
public function getFirst(){
if($this->queueConut() > 0){
return array_shift($this->array);
}
echo '队列里没有数据了';
}
//尾入列
public function setLast($item){
if($this->queueConut() < $this->max_num){
return array_push($this->array,$item);
}
echo '队列已经满了';
}
//尾出列
public function getLast(){
if($this->queueConut() > 0){
return array_pop($this->array);
}
echo '队列里没有数据了';
}
//查看队列
public function shows(){
print_r($this->array);
}
//清空队列
public function emptys(){
if($this->queueConut() > 0){
unset($this->array);
}
echo '队列里没有数据了';
}
//获取队列条数
private function queueConut(){
return count($this->array);
}
}
$Queue = new Queue();
$Queue->setFirst('张三');
$Queue->shows();
$Queue->setFirst('李四');
$Queue->shows();
$Queue->setFirst('王二');
$Queue->shows();
$Queue->getLast();
$Queue->shows();
最终实现效果
Array
(
[0] => 张三
)
Array
(
[0] => 李四
[1] => 张三
)
队列已经满了
Array
(
[0] => 李四
[1] => 张三
)
Array
(
[0] => 李四
)