[CODE] Linked List, or Array Table?

From: Chris Jacobson (fear@ATHENET.NET)
Date: 03/13/98


This question is sort of directed to Eric Green, but input from others is
more than welcome.

In my quest to completely C++'ize my MUD, I have been looking at various
systems for mass data storage/retreival, in particular, queues, arrays,
hash tables, and linked lists.

I noticed you use a Queue and Hash system in DG, which I found very
useful, and an educational project to bring it from C to C++, as I got to
learn more about Hash Tables (I'm starting to grasp their operation...
its a bit abstract for my normally logical mind - hence my avoidance of
templates also, but I'm learning :-)

In FL, you use Array and Hash Tables, with Iterators, frequently -
including in the character lists, descriptor lists, and more.  Did you do
any profiling, to see if it was more efficient than the current method of
linked lists?  I would assume it isn't faster, but is far safer, because
it looks like it can be resilient to having items removed from the array,
without interfering with higher-up iterations (example: a mob's death
during it's mobile_activity, resulting in mob->next being the beginning
of the purged_list, since I converted to the far-safer DG trash
collection system... to avoid this, I use a stored prev mob, and a stored
next mob, and if current->next != next, then next = prev->next)

- Chris Jacobson


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST