00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00028 #ifndef __LINKLIST_H__
00029 #define __LINKLIST_H__
00030
00031 #include "platform.h"
00032 #include "common_utils.h"
00033
00034
00035 typedef struct linkList_s
00036 {
00037 void *element;
00038 struct linkList_s *next;
00039
00040 } linkList_t;
00041
00042
00043
00044 linkList_t *linkList_new( void );
00045 wtBoolean linkList_delete( linkList_t *list );
00046 wtBoolean linkList_deleteFull( linkList_t *list );
00047
00048 wtBoolean linkList_add( linkList_t *list, void *newElement );
00049
00050 wtBoolean linkList_append( linkList_t *list, void *newElement );
00051
00052 linkList_t *linkList_addList( linkList_t *list, void *newElement );
00053 linkList_t *linkList_appendList( linkList_t *list, void *newElement );
00054
00055 wtBoolean linkList_removeNode( linkList_t *current, void *element );
00056 wtBoolean linkList_quickRemoveNode( linkList_t *current, linkList_t *previous );
00057
00058
00059 W32 linkList_count( linkList_t *list );
00060
00061
00062 #define linkList_GetNextElement( x ) ( (x) && ((x) = (x)->next) ? (x)->element : NULL )
00063
00064
00065 #endif