标签:
一:SPL中的双向链表---SplDoublyLinkedList()
1 <?php 2 $obj=new SplDoublyLinkedList(); 3 $obj->push(1); 4 $obj->push(2); 5 $obj->push(3); 6 $obj->unshift(10);//在bottom添加 7 $obj->shift(); //在bottom删除 8 // $obj->pop(); 9 $obj->rewind();//在调用current等操作前需要调用rewind() 10 $obj->next(); //从bottom到top 11 echo "current:".$obj->current(); //current:2 12 $obj->prev(); 13 echo "current:".$obj->current(); //current:1 14 $obj->prev(); 15 echo "current:".$obj->current(); //current:(指向空节点)
二:SPL中的堆栈---SplStack()
SPL的堆栈就像一个圆盘,要想把3拿出来,必须把5、7都拿出来。先进后出。
具有先进后出特性的成为堆栈。SplStack继承自SplDoublyLinkedList类、具有父类的一切方法。
注意点:
1 <?php 2 $stack = new SplStack(); 3 $stack->push("A"); 4 $stack->push("B"); 5 $stack->offsetSet(0, "C");//B的值设为C 6 //遍历堆栈 7 $stack->rewind(); 8 while ($stack->valid()){ 9 echo $stack->key()."=>".$stack->current()."<br>"; 10 $stack->next(); 11 }//1=>c 0=>A 12 $stack->pop(); 13 print_r($stack);//SplStack Object ( [flags:SplDoublyLinkedList:private] => 6 [dllist:SplDoublyLinkedList:private] => Array ( [0] => A ) )
三:SPL中的队列---SplQueue()
队列和堆栈正好相反,最先进入队列的元素会先出队列。
类比于排队打饭,排到最前面的人总是最先能够打到饭。
继承自SplDoublyLinkedList()
进入队列:enqueue()进入队列 dequeue()退出队列
注意点:
1 <?php 2 $queue=new SplQueue(); 3 $queue->enqueue(1); 4 $queue->enqueue(2); 5 $queue->enqueue(3); 6 $queue->dequeue();//1会退出队列 7 $queue->offsetSet(0, "b"); 8 $queue->rewind(); 9 echo "current:".$queue->current();//b
标签:
原文地址:http://www.cnblogs.com/bwcx/p/spl2.html