引进和使用PHP双链表(spldoublylinkedlist)
双链表是一种重要的线性存储结构。对于双链表中的每个节点,它不仅存储自己的信息,还存储前人和后继者的地址。在PHP SPL spldoublylinkedlist类提供了一个双链表的操作。
的spldoublylinkedlist班总结如下:
spldoublylinkedlist实现迭代器,ArrayAccess,可数{
公共__construct(void)
公共无效添加(混合混合newval美元指数,美元)
头节点/双链表
公共混合顶(空)
尾部节点/双链表
公共混合底(无效)
双表元素的数目
公共int计数(空)
双重检测是否列表是空的
public bool是空的(空)
当前节点的索引
公共混合密钥(无效)
移动到记录
public void prev(void)
移动到下一个记录
公共无效(下)
当前记录
公共混合电流(无效)
指向迭代开始的指针。
公共空白倒带(空白)
检查是否存在双链接列表节点。
public bool有效(无效)
指定的节点存在索引
public bool offsetexists(混合美元指数)
访问指定节点值
offsetget公共混合(混合美元指数)
在索引中设置指定的值。
公共无效offsetset(混合混合newval美元指数,美元)
删除指定的节点索引
公共无效offsetunset(混合美元指数)
从POP元素的结尾/双链接列表
公共混合流行音乐(无效)
将元素添加到尾部双链表中
公共虚推(混合值)
序列化
公共字符串序列化(void)
/ /反序列化
公共无效(字符串序列化序列化)
设置迭代模式
公共无效setiteratormode(int $模式)
spldoublylinkedlist:it_mode_lifo: / /得到迭代模式(堆栈式)spldoublylinkedlist::it_mode_fifo(队列式)
Public int getIteratorMode (void)
双链表的头/删除元素
公共混合转移(无效)
要将元素添加到头部的双链接列表
public void Unshift(混合价值)
}
使用起来很容易。
美元=新spldoublylinkedlist(名单);
$列表->推(A);
$列表->推(B);
$列表->推(C);
$列表-> Unshift(最重要的);
$列表>移位();
print_r(阵列(
= > $列表->流行(打开引擎),
= > $列表->计数(count),
= > $列表->是空的('isempty),
= > $列表->底部(底部的),
= >列表>顶(顶美元)
));
$列表-> setiteratormode(spldoublylinkedlist::it_mode_fifo);
print_r($列表-> getiteratormode());
对于($列表)
echo $列表->电流()。php_eol;
}
print_r($ =美元->连载列表());
/ / print_r($列表->序列化($));
$列表-> offsetset(0,新一的);
$列表-> offsetunset(0);
print_r(阵列(
offsetexists= > $列表-> offsetexists(4),
offsetget= > $列表-> offsetget(0),
));
print_r($列表);