您现在的位置是:网站首页>算法>用PHP实现一个双向队列类算法
用PHP实现一个双向队列类
admin【算法】33人已围观
array_unshift() 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。
array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
array_shift() 函数删除数组中第一个元素,并返回被删除元素的值。
array_pop() 函数删除数组中的最后一个元素。返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。
运行代码:
<?php
header("Content-type: text/html; charset=utf-8");
function dump($res){
echo "<pre>";
var_dump($res);
echo "</pre>";
}
//双向队列类
class Deque{
public $queue;
public function __construct($data=array()){
$this->queue = $data;
}
public function addFirst($item){
return array_unshift($this->queue,$item);
}
public function addLast($item){
return array_push($this->queue,$item);
}
public function removeFirst(){
return array_shift($this->queue);
}
public function removeLast(){
return array_pop($this->queue);
}
}
// test
$arr = array(
"1",'4','2'
);
$obj = new Deque($arr);
echo "从头部插入<br/>";
$res = $obj->addFirst("3");
dump($obj->queue);
// 从尾部插入
echo "从尾部插入<br/>";
$res = $obj->addLast("5");
dump($obj->queue);
// 从头部删除,返回删除的元素
echo "从头部删除,返回删除的元素<br/>";
$res = $obj->removeFirst();
dump($res);
// 从尾部删除,返回删除的元素
echo "从尾部删除,返回删除的元素<br/>";
$res = $obj->removeLast();
dump($res);
echo "--------------------------<br/>";
dump($obj->queue);
?>
运行结果
从头部插入
array(4) {
[0]=>
string(1) "3"
[1]=>
string(1) "1"
[2]=>
string(1) "4"
[3]=>
string(1) "2"
}
从尾部插入
array(5) {
[0]=>
string(1) "3"
[1]=>
string(1) "1"
[2]=>
string(1) "4"
[3]=>
string(1) "2"
[4]=>
string(1) "5"
}
从头部删除,返回删除的元素
string(1) "3"
从尾部删除,返回删除的元素
string(1) "5"
--------------------------
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "4"
[2]=>
string(1) "2"
}
站点信息
- 建站时间:2019-3-10
- 网站程序:ThinkPHP PHP MYsql
- 路由说明:全站静态化+api
- 统计数据:百度统计
- 登陆方式:githua授权登陆
- 个人邮箱:2584496361@qq.com
- 个人Q Q:2584496361
- 业务咨询:有需要建站朋友欢迎咨询



