1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #define LINKED_LIST
- struct listElement {
- void * data;
- struct listElement *next;
- struct listElement *previous;
- };
- typedef struct listElement LISTEL;
- LISTEL * insertBefore(void *theData, LISTEL *place)
- {
- LISTEL * element = malloc(sizeof(LISTEL));
- element->data = theData;
- if(place->previous == NULL)
- {
- element->next = place;
- place->previous = element;
- }
- else
- {
- LISTEL * previous = place->previous;
- previous->next = element;
- element->previous = previous;
- place->previous = place;
- element->next = place;
- }
-
- return element;
- }
- LISTEL * insertAfter(void *theData, LISTEL *place)
- {
- LISTEL * element = malloc(sizeof(LISTEL));
- element->data = theData;
- if(place->next == NULL)
- {
- element->previous = place;
- place->next = element;
- }
- else
- {
- LISTEL * next = place->next;
- next->previous = element;
- element->next = next;
- place->next = element;
- element->previous = place;
- }
- return element;
- }
|