队列的数据结构更简单,就像我们在生活中排队一样,它的特点是先进先出(FIFO)。



在PHP SPL splqueue班队列的操作实施,并像一个堆栈,它也可以承受双向链表(spldoublylinkedlist)容易。

的splqueue班总结如下:



splqueue只是用如下:

复制代码代码如下所示:

队列=新splqueue(美元);





*可视和双链表的区别是,iteratormode改变,和堆栈的IteratorMode只能:

*(1):spldoublylinkedlist:it_mode_fifo spldoublylinkedlist:|:it_mode_keep(默认值迭代数据)

*(2):spldoublylinkedlist:it_mode_fifo spldoublylinkedlist:(it_mode_delete |:迭代后删除数据)

* /

$队列-> setiteratormode(spldoublylinkedlist::::it_mode_fifo | spldoublylinkedlist it_mode_delete);



/ / splqueue::入队()实际上是spldoublylinkedlist::推()

$队列->入队(A);

$队列->入队(B);

$队列->入队(C);



/ /::splqueue出列()实际上是spldoublylinkedlist::移()

print_r($队列-> dequeue());



foreach($队列达项目){

回波$项。php_eol;

}



print_r($队列);



优先级队列splpriorityqueue基于堆(Hou Wen介绍)。

对splpriorityqueue课后总结如下:



splpriorityqueue使用简单:


PQ =新splpriorityqueue(美元);

PQ美元->插入(A,10);
PQ美元->插入(B,1);
PQ美元->插入(C,8);

echo PQ ->计数()。php_eol; / / 3
当前()。php_eol; / /


*将元素从团队模式中设置
* splpriorityqueue::extr_data只提取价值
* splpriorityqueue::extr_priority只提取优先级
* splpriorityqueue::extr_both提取数组中的值和优先级
* /
$ PQ -> setextractflags(splpriorityqueue::extr_data);

当($ =有效()){
print_r($ PQ ->电流()); / / C B
下一个();
}