2006-7-20 12:17
(时间久远,具体对应的结构体就不找了,应该猜得到。)
#define REMOVE_ELEMENT(first_element, element) \ if (element->parent == NULL) \ { \ first_element = element->next; \ if (first_element != NULL) \ first_element->parent = NULL; \ } \ else \ { \ element->parent->next = element->next; \ if (element->next != NULL) \ element->next->parent = element->parent; \ element->next = NULL; \ element->parent = NULL; \ } #define ADD_ELEMENT(first_element, element) \ if (first_element == NULL) \ { \ first_element = element; \ element->next = NULL; \ element->parent = NULL; \ } \ else \ { \ element->next = first_element; \ element->parent = NULL; \ element->next->parent = element; \ first_element = element; \ } #define APPEND_ELEMENT(type_of_element_t, first_element, element) \ if (first_element == NULL) \ { first_element = element; \ element->next = NULL; /* useless */ \ element->parent = NULL; /* useless */ \ } \ else \ { \ type_of_element_t *f; \ for (f = first_element; f->next != NULL; f = f->next) \ { } \ f->next = element; \ element->parent = f; \ element->next = NULL; \ }