Rumah >pembangunan bahagian belakang >tutorial php >php实现栈、队列、最小堆和固定长度数组等常用数据结构

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

WBOY
WBOYasal
2016-06-20 13:02:231450semak imbas

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);

 


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn