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

WBOY
Release: 2016-06-20 13:02:23
Original
1377 people have browsed it

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();
Copy after login

队列的实现

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

最小堆的实现

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

固定长度的数组

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

 


Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!