PHP之双向链表(SplDoublyLinkedList)简介

PHP之双向链表(SplDoublyLinkedList)简介

ID:37712319

大小:14.24 KB

页数:10页

时间:2019-05-29

PHP之双向链表(SplDoublyLinkedList)简介_第1页
PHP之双向链表(SplDoublyLinkedList)简介_第2页
PHP之双向链表(SplDoublyLinkedList)简介_第3页
PHP之双向链表(SplDoublyLinkedList)简介_第4页
PHP之双向链表(SplDoublyLinkedList)简介_第5页
资源描述:

《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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。