发布于 2017-04-16 08:36:11 | 135 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的PHP设计模式,程序狗速度看过来!

PHP开源脚本语言

PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。


一、什么是双向链表?

按照百度词条的说法:双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。

我的理解是,双向链表中的每个数据带有两个标识(域),一个可以指向前一个数据的地址,另一个可以指向后一个数据的地址,所以相对单向链表来说,可以比较方便的查找到前一个数据和数据地址,但是比单向链表多使用了内存,也就是空间换时间的做法。

php使用SplDoublyLinkedList类可以实现双向链表。

二、PHP双向链表的用法

<?php

$obj = new SplDoublyLinkedList();//建立一个双向链表对象

echo '<pre>';

$obj->push(1);//上部压入 链表中的元素为[0]=>1,

$obj->push(2);//上部压入 链表中的元素为[0]=>1,[1]=>2

$obj->push(3);//上部压入 链表中的元素为[0]=>1,[1]=>2,[2]=>3

$obj->unshift(8);//底部压入 链表中的元素为[0]=>8,[1]=>1,[2]=>2,[3]=>3

$obj->unshift(9);//底部压入 链表中的元素为[0]=>9,[1]=>8,[2]=>1,[3]=>2,[4]=>3

$obj->unshift(10);//底部压入链表中的元素为[0]=>10,[1]=>9,[2]=>8,[3]=>1,[4]=>2,[5]=>3

//此时链表中的元素自下向上依次为:[0]=>10,[1]=>9,[2]=>8,[3]=>1,[4]=>2,[5]=>3

$obj->rewind();//将指针指向底部第一个元素,这里指的是10这个元素

$obj->next();//将指针向上移动一个单位,此时指针指向9这个元素

$obj->prev();//将指针向下移动一个单位,此时指针指向10这个元素

echo $obj->bottom();//查看底部元素,此时指针位置未变

echo $obj->top();//查看上部元素,此时指针位置不变

$obj->add(1,12);//添加元素,在0的位置上添加一个12,链表中的元素为[0]=>10,[1]=>12,[2]=>9,[3]=>8,[4]=>1,[5]=>2,[6]=>3

$obj->next();

echo $obj->key();//查看当前指针位置

echo $obj->current();//查看当前指针所对应的元素

echo $obj->valid();//查看当前节点是否为有效节点,是的话,返回true;

$obj->pop();//删除最上部的一个,top,如果删除当前节点,则指针为空。

$obj->shift();//删除最底部的一个元素,bottom

贴图:



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务