At 04:43 09.02.2003, Laborda said:
--------------------[snip]--------------------
>Does anyone know where can I find information about data structures
>implemented in PHP. I need to find something about Linked Lists, implemented
>in PHP.. If anyone has any info, I'd appreciate it. I've tried to google it
>out but I can't find anything. Thanks.
--------------------[snip]-------------------- 

As another poster already pointed out associative arrays may be one way to
go /although there are multiple solutions to linked lists, as in many
languages).

However there is one caveat you absolutely need to observe: in PHP there
are NO POINTERS. "Normally" assigning variables of any type will create a
copy of the variable. like this:

    $a1 = array(1,2,3);
    $a2 = $a1;

Here, $a2 is a COPY of $a1:
    $a2[3] = 4;
    echo join(',',$a1), ' - ', join(',',$a2);

will produce
    1,2,3 - 1,2,3,4

OTOH, you may use REFERENCES:
    $a2 =& $a1;
    $a2[3] = 4;
    echo join(',',$a1), ' - ', join(',',$a2);
will now produce
    1,2,3,4 - 1,2,3,4

This said, using array entries for linked lists, you must absolutely make
sure to always use references, not simple assignments.

Assuming a "structure" built as PHP array (unfortunately there's no such
thing as a typedef):

    $start = array('prev' => null, 'next' => null, 'data' => 'First entry');
    $elem  = array('prev' => &$start, 'next' => null, 'data' => 'Second
entry');
    $start['next'] =& $elem;

You get the picture, I believe. Just make sure the "pointers" are actually
references to the list elements, or everything will break up.

HTH,


-- 
   >O     Ernest E. Vogelsinger
   (\)    ICQ #13394035
    ^     http://www.vogelsinger.at/



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to