Re: in the middle of shift and pop
| From: | Robert Cummings | Date: | Thu, 21 Aug 2003 04:24:36 +0000 |
| Subject: | Re: in the middle of shift and pop | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-160271@lists.php.net to get a copy of this message | ||
On Wed, 2003-08-20 at 23:38, Jaap van Ganswijk wrote:
>
> Finding a single element in a doubly linked list can
> be sped up using a hash-code table, but it also
> makes things like renumbering numerically indexed
> entries a lot harder (I think, I never used a
> combination of these things.)
Doubly threaded red-black trees are good for in order traversal and
arbitrary lookup. As with most structures that provide more speed, you
use more memory :) O( lg n ) insertion, O( lg n ) deletion, O( lg n )
search. Threaded means the in order nodes are threaded into a linked
list. PHP I believe uses hashes of some sort, I'm not sure how they keep
track of the insertion order for doing a foreach loop -- I guess we
could look. On a more related topic: if he's happy with the unset()
function but wants the indexes renumbered, he could write a C function
which performs the renumbering. Should keep it relatively fast and
provide the option of renumbering -- or not.
Cheers,
Rob.
--
.---------------------------------------------.
| Worlds of Carnage - http://www.wocmud.org |
:---------------------------------------------:
| Come visit a world of myth and legend where |
| fantastical creatures come to life and the |
| stuff of nightmares grasp for your soul. |
`---------------------------------------------'