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; \
}