php中double的意义,PHP的splDoubleLinkedList类的意义是什么,更重要的是,通常的链接列表?...

你可能是对的,只是不太有用。

理论上,链表有很多用途(尤其是跳舞链表)。但其中大多数涉及到在其他地方存储和克隆迭代器、从两个以上的方向访问内容,或者拆分和合并列表。spldubleLinkedList似乎没有这些。

如果不适用于算法,一种用法是允许对象在某个列表中以恒定的时间删除其自身的引用,释放其内存,并且在插入或删除后不必改变列表的顺序(通过散列或与最后一项交换)。但这需要在这些对象中存储列表的迭代器。

如果没有这些功能,它们的行为就像两个Deques。如果只需要使用迭代器访问项,它们就像两个堆栈。在单线程简单情况下,一个更好的方法是使用两个堆栈(可能是固定数组,也可能是同一数组的两端)。每当您希望迭代器移动时,从一个堆栈中弹出并将其推送到另一个堆栈,并且一个堆栈的顶部是当前项。如果您还需要访问头部和尾部,您需要用Deques替换堆栈。

但是,如果您想在不知道最大大小的情况下实现栈或deques本身,或者甚至想分配普通链表的节点(在没有这些库的语言中,比如在PHP中),好的方法是使用没有这些功能的双链表将一些固定数组链接在一起。不知怎么的,你仍然需要它。

PHP文档本身,就像Java语言一样,表明它们应该只是一个支持一些奇怪的特性的DeQueD,而不是两个DeGuy(我想)。如果你真的需要双重链接列表,不要使用它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值