1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#ifndef LIST_INCLUDED
#define LIST_INCLUDED
typedef struct list_entry {
struct list_entry *prev; /*+ Pointer to previous entry + */
struct list_entry *next; /*+ Pointer to next entry + */
void *data; /*+ Pointer to data item associated with this entry + */
} ListEntry;
typedef struct {
ListEntry *head; /*+ Pointer to Entry at Head of List + */
ListEntry *tail; /*+ Pointer to Entry at Tail of List + */
ListEntry *current; /*+ Pointer to current Entry in List + */
ListEntry *prev; /*+ Pointer to next entry following current + */
ListEntry *next; /*+ Pointer to next entry following current + */
} List;
List *ListCreate(void);
int ListFree(List * list, void (*func) ());
int ListAddHead(List * list, void *data);
int ListAddTail(List * list, void *data);
List *ListMerge(List * list1, List * list2);
void ListSort(List * list, int (*func) ());
int ListReset(List * list);
int ListTraverse(List * list, void **entry);
int ListTraverseBck(List * list, void **entry);
int ListDeleteEntry(List * list);
int ListInsertBefore(List * list, void *data);
int ListInsertAfter(List * list, void *data);
int ListSwapEntry(List * list);
#endif
|