SPL数据结构之队列SplQueue,先进先出,First In First Out(FIFO)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$obj = new SplQueue();
// 插入一个节点到队列里面的Top位置
$obj->enqueue('a');
$obj->enqueue('b');
$obj->enqueue('c');
print_r($obj);
echo 'Bottom:' . $obj->bottom() . "\r\n";
echo 'Top:' . $obj->top() . "\r\n";
// 队列里面offset=0是Bottom所在位置,offset=1是Top方向的相邻节点,以此类推。
$obj->offsetSet(0, 'A');
print_r($obj);
// 队列里面的rewind操作使得指针指向Bottom所在位置的节点
$obj->rewind();
echo 'Current:' . $obj->current() . "\r\n";
// 遍历队列
while ($obj->valid()) {
echo $obj->key() . '=>' . $obj->current() . "\r\n";
// next操作使得当前指针指向top方向的下一个节点
$obj->next();
}
// dequeue操作从队列中提取Bottom位置的节点,并返回。
// 同时从队列里删除该元素。
echo 'dequeue obj:' . $obj->dequeue() . "\r\n";
print_r($obj);