php利用SPL实现栈、队列、最小堆和固定长度数组等常用数据结构

分类: PHP,分享  • 发布时间: 2015-04-13 22:24:00  • 浏览量:10397

php的SPL提供了些数据结构基本类型的实现,虽然我们可以使用传统的变量类型来描述数据结构,例如用数组来描述堆栈(Strack)然后使用对应的方式 pop 和 push(array_pop()、array_push()),但你得时刻小心,因为毕竟它们不是专门用于描述数据结构的,一次误操作就有可能破坏该堆栈。而SPL的 SplStack 对象则严格以堆栈的形式描述数据,并提供对应的方法。同时,这样的代码应该也能理解它在操作堆栈而非某个数组,从而能让你的同伴更好的理解相应的代码,并且它更快。 



栈的实现

$stack = new SplStack(); 
//入栈
$stack->push('a');
$stack->push('b');
//出栈
echo $stack->pop();
echo $stack->pop();


队列的实现

$queue = new SplQueue();
//入队列
$queue->enqueue('a');
$queue->enqueue('b');
$queue->enqueue('c');
//出队列
echo $queue->dequeue();
echo $queue->dequeue(); 
echo $queue->dequeue();


最小堆的实现

$heap = new SplMinHeap();
//插入到堆
$heap->insert('a'); 
$heap->insert('b');
//从堆中提取数据
echo $heap->extract();
echo $heap->extract();

固定长度的数组

$array = new SplFixedArray(5);
$array[1] = 5;
var_dump($array);


文章标签: php, spl, 数据结构
用户评论:
  • 游客23465 2015-08-06 01:04:43

    这个我基本没用过!