Linked lists use pointers to allow the memory for the items to be allocated
as needed, and ties those pointers to each item for the next (and previous
for doubly-linked) so traversal code can hop from memory pocket to memory
pocket in the right order.

Whereas an array in a language like C keeps all the items in sequential
memory locations so moving form one to the next is just a matter of adding
one to the pointer to the current item.

In LiveCode, memory allocation and management is handled by the system.

The old-school method of handling lists (and one I still use when order is
most important) is the good old comma-delimited list. Inserting and deleting
is done with the "put x before/after" command or the "delete item x"
command. Access it direct by item number.

put "A,B,C,D,E,F" into myList
delete item 5 of myList
put ",3" after item 2 of myList
put item 4 of myList into msg       -- "C"
put item 2 to -2 of myList into msg      -- "B,3,C,D"
put myList into msg         -- "A,B,3,C,D,F"

You can also use arrays, though if you are deleting items, you need to
access the list of keys. This can get more complex, since LC's arrays are
actually maps.

 ~ Chris Innanen
 ~ Nonsanity


On Sun, Apr 24, 2011 at 8:08 PM, Pete <p...@mollysrevenge.com> wrote:

> By chance, does anyone have an LC script for handling a linked list
> (navigating, inserting, deleting)?
>
> Pete
> Molly's Revenge <http://www.mollysrevenge.com>
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to