struct ll { struct ll * next; void * data; }; static struct ll * first, ** last = &first; int add_ll_element(void * new_data) { struct ll * new_member; if (NULL == (new_member = malloc(sizeof(struct ll)))) { return(-1); } *last = new_member; last = &new_member->next; new_member->next = NULL; new_member->data = new_data; return(0); } struct data * remove_ll_element() { void * data; struct ll * old_member; if ((old_member = first)) { if (NULL == first = first->next)) { last = &first; } data = old_member->data; free(old_member); } return(NULL); }next slide