On Tue, 14 Jan 1997, Cyber Reaper wrote:
- ok... I feel that I have reached the point where I will need linked lists...
- but I dont know how to make them... can anyone give me a quick rundown on
- makeing linked list.. it would be much apreataded<sp?>
They're very easy. It's just a bunch of structures that point to each
other:
struct character_list {
struct char;
struct character_list *next;
}
This is a simple linked list element that will hold an bunch of characters
(like people in a room, people on the mud, etc).
/* global declaration of the pointer to the list*/
struct character_list *top_of_list;
/* build a linked list with a few mobs in it */
void build_dummy_list(void) {
struct character_list *list_pointer;
/* create the first entry */
CREATE(top_of_list, struct character_list, 1);
/* create a mob and put it in the list */
top_of_list->char = read_mobile(1); /* mobile with an rnum of 1 */
/* make the next list element and put another mob in it */
CREATE(list_pointer, struct character_list, 1);
list_pointer->char = read_mobile(2); /* I have no idea which mobs these are */
/* add the new element on to the list */
top_of_list->next = list_pointer;
/* now top_of_list->next->char = mob 2 */
}
That's the basics of it. All you're doing is creating memory for elements
in the list, and pointing the ->next pointer to the new element. You can
have more data in the structure, and you can also link backwards if you
add a struct character_list *previous to the character_list structure.
For examples, you could search the code for descriptor_list, which is a
linked list of all descriptors (sockets) connected to the game.
Sam
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST