75#define LISTADDCURR 0x300
76#define LISTADDHEAD 0x100
77#define LISTADDTAIL 0x200
78#define LISTADDSPLAY 0x400
79#define LISTDELCURR 0x030
80#define LISTDELHEAD 0x010
81#define LISTDELTAIL 0x020
82#define LISTDELSPLAY 0x040
83#define LISTREADCURR 0x003
84#define LISTREADHEAD 0x001
85#define LISTREADTAIL 0x002
87#define LISTDELREAD 0x1000
88#define LISTCIRCULAR 0x2000
89#define LISTBTREE 0x4000
92#define LISTADDMASK 0xF00
93#define LISTDELMASK 0x0F0
94#define LISTREADMASK 0x00F
95#define LISTFLAGMASK 0xF000
98#define LIST (LISTADDCURR | LISTREADCURR | LISTDELCURR)
99#define FIFO (LISTADDTAIL | LISTREADHEAD | LISTDELHEAD)
100#define LIFO (LISTADDHEAD | LISTREADHEAD | LISTDELHEAD)
101#define QUEUE (FIFO | LISTDELREAD)
102#define STACK (LIFO | LISTDELREAD)
103#define CIRCULAR_QUEUE (QUEUE | LISTCIRCULAR)
104#define STREE (LISTBTREE | LISTADDSPLAY | LISTDELSPLAY | LISTREADCURR)
109#define LLIST_NOERROR 0
111#define LLIST_ERROR -1
113#define LLIST_OK LLIST_NOERROR
114#define LLIST_BADVALUE LLIST_NULL
123typedef void *(* ListAlloc)(
size_t size);
164#define DMALLOC malloc
190#define NewList(Type) NewListAlloc(Type, NULL, NULL, NULL)
202#define NewNode(Data) NewListNode(NULL, Data)
356int PrintList(
listPtr List,
char *DataFmt);
361int PrintTree(
listPtr List,
char *DataFmt);
listnodePtr NewListNode(listPtr List, void *Data)
struct ListNode * listnodePtr
void(* ListFreeFunc)(void *)
void * NextNode(listPtr List)
int DelTailList(listPtr List)
void *(* ListAlloc)(size_t size)
void * FindNode(listPtr List, void *Data)
int IntCompare(int *First, int *Second)
int TailList(listPtr List, listnodePtr Node)
listPtr NewListAlloc(int ListType, ListAlloc Lalloc, ListFreeFunc Lfree, NodeCompareFunc Cfunc)
void * PrevNode(listPtr List)
int SplayInsertList(listPtr List, listnodePtr Node)
void * GetNodeData(listnodePtr Node)
int AddNode(listPtr List, listnodePtr Node)
int DelHeadList(listPtr List)
int RemoveList(listPtr List)
int FreeList(listPtr List, ListFreeFunc DataFree)
void SortList(listPtr List)
int InsertList(listPtr List, listnodePtr Node)
int DelNode(listPtr List)
int(* ListDumpFunc)(void *)
int DoubleCompare(double *First, double *Second)
void * GetNode(listPtr List)
int HeadList(listPtr List, listnodePtr Node)
int(* NodeCompareFunc)(void *, void *)
void * BTFind(listPtr List, void *Data)
void * IndexNode(listPtr List, int Index)
void * SplayList(listPtr List, void *Data)
int DumpList(listPtr List, ListDumpFunc DataDump)
int StringCompare(char *First, char *Second)
void SwapList(listPtr List)