欢迎来到天天文库
浏览记录
ID:37712319
大小:14.24 KB
页数:10页
时间:2019-05-29
《PHP之双向链表(SplDoublyLinkedList)简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PHPSPL标准库里实现了几种简单的线性表和树型结构,其中包括了双链表和双链表实现的队列和栈、最大堆、最小堆和优先队列。双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储自己的信息,还要保存前驱和后继节点的地址。双链表对PHP开发程序来讲是很重要的一种数据结构,可以把PHP数组中想想成一个双链表,而PHP内置的SplDoublyLinkedList类通过实现迭代器、数组访问和获取数量的接口使程序访问对象变得访问数组一样方便。SplDoublyLinkedList类代码如下:
2、terator,ArrayAccess,Countable的文章已经介绍过了,不认识的可以往前翻翻*@linkhttp://blog.csdn.net/wuxing26jiayou/article/details/51862707*/classSplDoublyLinkedListimplementsIterator,ArrayAccess,Countable{/***@var_llist定义一个数组用于存放数据*/protected$_llist=array();/***@var_it_mode链表的迭代模式*/protect
3、ed$_it_mode=0;/***@var_it_pos链表指针*/protected$_it_pos=0;/***迭代模式*@seesetIteratorMode*/constIT_MODE_LIFO=0x00000002;constIT_MODE_FIFO=0x00000000;constIT_MODE_KEEP=0x00000000;constIT_MODE_DELETE=0x00000001;/***@return返回被移出尾部节点元素*@throwRuntimeException如果链表为空则抛出异常*/public
4、functionpop(){if(count($this->_llist)==0){thrownewRuntimeException("Can'tpopfromanemptydatastructure");}returnarray_pop($this->_llist);}/***@return返回被移出头部节点元素*@throwRuntimeException如果链表为空则抛出异常*/publicfunctionshift(){if(count($this->_llist)==0){thrownewRuntimeExceptio
5、n("Can'tshiftfromanemptydatastructure");}returnarray_shift($this->_llist);}/***往链表尾部添加一个节点元素*@param$data要添加的节点元素*/publicfunctionpush($data){array_push($this->_llist,$data);returntrue;}/***往链表头部添加一个节点元素*@param$data要添加的节点元素*/publicfunctionunshift($data){array_unshift($
6、this->_llist,$data);returntrue;}/***@return返回尾部节点元素,并把指针指向尾部节点元素*/publicfunctiontop(){returnend($this->_llist);}/***@return返回头部节点元素,并把指针指向头部节点元素*/publicfunctionbottom(){returnreset($this->_llist);}/***@return返回链表节点数*/publicfunctioncount(){returncount($this->_llist);}
7、/***@return判断链表是否为空*/publicfunctionisEmpty(){return($this->count()==0);}/***设置迭代模式*-迭代的顺序(先进先出、后进先出)*-SplDoublyLnkedList::IT_MODE_LIFO(堆栈)*-SplDoublyLnkedList::IT_MODE_FIFO(队列)**-迭代过程中迭代器的行为*-SplDoublyLnkedList::IT_MODE_DELETE(删除已迭代的节点元素)*-SplDoublyLnkedList::IT_MODE
8、_KEEP(保留已迭代的节点元素)**默认的模式是0:SplDoublyLnkedList::IT_MODE_FIFO
9、SplDoublyLnkedList::IT_MODE_KEEP**@param$mode新的迭代模式*/publicfunctionsetI
此文档下载收益归作者所有