Hello Ben,

  there is no need in checking whether the implementation uses single
or double linked. Access to any structure from the engine will always
be slower by orders of magnitude, then maintaining a pinter structure
directly in C code. Now doing something with that in PHP code will
again be slower - by orders of magnitude.

marcus

Sunday, March 15, 2009, 2:19:55 PM, you wrote:

> Firstly, apologies if this is not the correct place to ask such a 
> question - I was directed here from a forum.

> I recently discovered the datastructures found in the Standard PHP 
> Library. I noticed that SplStack is implemented using a doubly-linked 
> list and wondered why. Given that a stack is LIFO store and the only 
> operations really needed are push and pop, why would next and previous 
> pointers be required on each item? There's no requirement to allow 
> iteration over a stack.

> It would seem to me that a stack should require a linear linked list and 
> a pointer to the top of the stack - which would have roughly half the 
> memory overhead of a doubly-linked list (half the number of pointers).

> Do i just have no idea what i'm talking about or have i missed something 
> obvious?

> Thanks in advance,

> Ben




Best regards,
 Marcus


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to