25 if (listPos == NULL) {
35 newElem->
prev = listPos;
36 listPos->
next = newElem;
47 return listInsertNodeAfter(list, listPos, newElem);
55 while (list->
next != NULL)
78 while ((curNode != NULL) && (i < position)) {
79 curNode = curNode->
next;
101 t_listNode *list,
void *data,
int (*compareFunc)(
void *a,
void *b))
105 while (curNode != NULL) {
106 void *curData = curNode->
data;
108 if (compareFunc(curData, data) >= 0)
112 curNode = curNode->
next;
119static bool listDataDefaultCompareFunc(
void *a,
void *b)
125 t_listNode *list,
void *data,
bool (*compareFunc)(
void *a,
void *b))
127 if (compareFunc == NULL)
128 compareFunc = listDataDefaultCompareFunc;
133 while (curNode != NULL) {
134 if (compareFunc(curNode->
data, data))
136 curNode = curNode->
next;
150 if (list == NULL || element == NULL)
152 assert(list->
prev == NULL &&
"prev link of head of list not NULL");
153 if ((element->
prev == NULL) && (element != list))
156 if (element->
prev != NULL) {
159 if (element->
next != NULL)
163 assert(list == element &&
"element to remove not belonging to the list");
165 if (element->
next != NULL) {
169 list = element->
next;
199 if (list == NULL || element == NULL)
203 while (list != NULL && list != element) {
217 while (list != NULL) {
230 while (curSrc != NULL) {
232 list = listInsertNodeAfter(list, curDest, newNode);
234 curSrc = curSrc->
next;
void fatalError(const char *format,...)
void * data
Pointer to the data associated to this node.
t_listNode * listGetNodeAt(t_listNode *list, unsigned int position)
t_listNode * listInsertBefore(t_listNode *list, t_listNode *listPos, void *data)
t_listNode * listFindAndRemove(t_listNode *list, void *data)
int listNodePosition(t_listNode *list, t_listNode *element)
t_listNode * listInsertAfter(t_listNode *list, t_listNode *listPos, void *data)
t_listNode * listClone(t_listNode *list)
t_listNode * listInsert(t_listNode *list, void *data, int pos)
t_listNode * listFind(t_listNode *list, void *data)
int listLength(t_listNode *list)
t_listNode * deleteList(t_listNode *list)
t_listNode * listFindWithCallback(t_listNode *list, void *data, bool(*compareFunc)(void *a, void *b))
t_listNode * listRemoveNode(t_listNode *list, t_listNode *element)
t_listNode * listAppendList(t_listNode *list, t_listNode *elements)
t_listNode * listInsertSorted(t_listNode *list, void *data, int(*compareFunc)(void *a, void *b))
t_listNode * listGetLastNode(t_listNode *list)