用php堆栈数据结构 php堆和栈

如何使用php实现一个双向队列的数据结构有几种方式不建议直接用php来做队列用php堆栈数据结构,php用php堆栈数据结构的array操作虽然勉强能做伪队列用php堆栈数据结构 , 但问题也来了用php堆栈数据结构,如果是大量的数据呢?php会不会内存问题直接挂了?
建议:测试的话用用还凑合,但真正去用的话双向队列,用redis的list类型吧,可以满足用php堆栈数据结构你的需求,同时数量级上也不是问题 , 单向队列
httpsqs,rabbitmq等
再看看别人怎么说的 。
PHP 数据结构 算法 三元组 Triplet复制代码
代码如下:
?php
/**
*
三元组
Triplet
*
*/
class
Triplet
{
private
$_data
=
null;
//
初始化三元组
public
function
init($val1,$val2,$val3)
{
$this-_data[0]
=
$val1;
$this-_data[1]
=
$val2;
$this-_data[2]
=
$val3;
return
true;
}
//
销毁三元组
public
function
destroy()
{
unset($this-_data);
return
true;
}
//
返回第$key用php堆栈数据结构的值
public
function
get($key)
{
if($key
1
||
$key
3)
return
false;
return
$this-_data[$key
-
1];
}
//
设置第$key元用php堆栈数据结构的值为$val
public
function
put($key,$val)
{
if($key
1
||
$key
3)
return
false;
$this-_data[$key
-
1]
=
$val;
return
true;
}
//
是否按升序排序
public
function
isAscending()
{
return
($this-_data[0]
=
$this-_data[1])
($this-_data[1]
=
$this-_data[2]);
}
//
是否按降序排序
public
function
isDescending()
{
return
($this-_data[0]
=
$this-_data[1])
($this-_data[1]
=
$this-_data[2]);
}
//
获取最大值
public
function
max()
{
return
($this-_data[0]
=
$this-_data[1])?
($this-_data[0]
=
$this-_data[2])?
$this-_data[0]
:
$this-_data[2]
:
($this-_data[1]
=
$this-_data[2])?
$this-_data[1]
:
$this-_data[2];
}
//
获取最小值
public
function
min()
{
return
($this-_data[0]
=
$this-_data[1])?
($this-_data[0]
=
$this-_data[2])?
$this-_data[0]
:
$this-_data[2]
:
($this-_data[1]
=
$this-_data[2])?
$this-_data[1]
:
$this-_data[2];
}
}
//
$objTriplet
=
new
Triplet();
echo
"init:";var_dump($objTriplet-init(1,2,3));
echo
"br/";
echo
"get
1:";var_dump($objTriplet-get(1));
echo
"br/";
echo
"get
4:";var_dump($objTriplet-get(4));
echo
"br/";
//
false
echo
"put
3,4:";var_dump($objTriplet-put(3,4));
echo
"br/";
echo
"max:";var_dump($objTriplet-max());
echo
"br/";
echo
"min:";var_dump($objTriplet-min());
echo
"br/";
echo
"isAscending:";var_dump($objTriplet-isAscending());
echo
"br/";
echo
"isDescending:";var_dump($objTriplet-isDescending());
echo
"br/";
?
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例队列这种数据结构更简单用php堆栈数据结构,就像用php堆栈数据结构我们生活中排队一样用php堆栈数据结构,它用php堆栈数据结构的特性是先进先出(FIFO) 。

推荐阅读