214 #include "allheaders.h" 238 DLLIST *elem, *next, *head;
240 PROCNAME(
"listDestroy");
243 L_WARNING(
"ptr address is null!\n", procName);
247 if ((head = *phead) == NULL)
250 for (elem = head; elem; elem = next) {
252 L_WARNING(
"list data ptr is not null\n", procName);
282 PROCNAME(
"listAddToHead");
285 return ERROR_INT(
"&head not defined", procName, 1);
288 return ERROR_INT(
"data not defined", procName, 1);
290 if ((cell = (
DLLIST *)LEPT_CALLOC(1,
sizeof(
DLLIST))) == NULL)
291 return ERROR_INT(
"cell not made", procName, 1);
335 DLLIST *cell, *head, *tail;
337 PROCNAME(
"listAddToTail");
340 return ERROR_INT(
"&head not defined", procName, 1);
343 return ERROR_INT(
"&tail not defined", procName, 1);
345 return ERROR_INT(
"data not defined", procName, 1);
347 if ((cell = (
DLLIST *)LEPT_CALLOC(1,
sizeof(
DLLIST))) == NULL)
348 return ERROR_INT(
"cell not made", procName, 1);
358 if ((tail = *ptail) == NULL)
400 PROCNAME(
"listInsertBefore");
403 return ERROR_INT(
"&head not defined", procName, 1);
406 return ERROR_INT(
"data not defined", procName, 1);
407 if ((!head && elem) || (head && !elem))
408 return ERROR_INT(
"head and elem not consistent", procName, 1);
411 if ((cell = (
DLLIST *)LEPT_CALLOC(1,
sizeof(
DLLIST))) == NULL)
412 return ERROR_INT(
"cell not made", procName, 1);
419 }
else if (head == elem) {
425 cell->prev = elem->prev;
427 elem->prev->next = cell;
465 PROCNAME(
"listInsertAfter");
468 return ERROR_INT(
"&head not defined", procName, 1);
471 return ERROR_INT(
"data not defined", procName, 1);
472 if ((!head && elem) || (head && !elem))
473 return ERROR_INT(
"head and elem not consistent", procName, 1);
476 if ((cell = (
DLLIST *)LEPT_CALLOC(1,
sizeof(
DLLIST))) == NULL)
477 return ERROR_INT(
"cell not made", procName, 1);
484 }
else if (elem->next == NULL) {
490 cell->next = elem->next;
491 elem->next->prev = cell;
520 PROCNAME(
"listRemoveElement");
523 return (
void *)ERROR_PTR(
"&head not defined", procName, NULL);
526 return (
void *)ERROR_PTR(
"head not defined", procName, NULL);
528 return (
void *)ERROR_PTR(
"elem not defined", procName, NULL);
532 if (head->next == NULL) {
534 return (
void *)ERROR_PTR(
"elem must be head", procName, NULL);
536 }
else if (head == elem) {
537 elem->next->prev = NULL;
539 }
else if (elem->next == NULL) {
540 elem->prev->next = NULL;
542 elem->next->prev = elem->prev;
543 elem->prev->next = elem->next;
571 PROCNAME(
"listRemoveFromHead");
574 return (
void *)ERROR_PTR(
"&head not defined", procName, NULL);
575 if ((head = *phead) == NULL)
576 return (
void *)ERROR_PTR(
"head not defined", procName, NULL);
578 if (head->next == NULL) {
581 head->next->prev = NULL;
620 PROCNAME(
"listRemoveFromTail");
623 return (
void *)ERROR_PTR(
"&head not defined", procName, NULL);
624 if ((head = *phead) == NULL)
625 return (
void *)ERROR_PTR(
"head not defined", procName, NULL);
627 return (
void *)ERROR_PTR(
"&tail not defined", procName, NULL);
628 if ((tail = *ptail) == NULL)
631 if (head->next == NULL) {
635 tail->prev->next = NULL;
673 PROCNAME(
"listFindElement");
676 return (
DLLIST *)ERROR_PTR(
"head not defined", procName, NULL);
678 return (
DLLIST *)ERROR_PTR(
"data not defined", procName, NULL);
680 for (cell = head; cell; cell = cell->next) {
681 if (cell->data == data)
700 PROCNAME(
"listFindTail");
703 return (
DLLIST *)ERROR_PTR(
"head not defined", procName, NULL);
705 for (cell = head; cell; cell = cell->next) {
706 if (cell->next == NULL)
710 return (
DLLIST *)ERROR_PTR(
"tail not found !!", procName, NULL);
726 PROCNAME(
"listGetCount");
729 return ERROR_INT(
"head not defined", procName, 0);
732 for (elem = head; elem; elem = elem->next)
756 PROCNAME(
"listReverse");
759 return ERROR_INT(
"&head not defined", procName, 1);
760 if ((head = *phead) == NULL)
761 return ERROR_INT(
"head not defined", procName, 1);
792 DLLIST *head1, *head2, *tail1;
794 PROCNAME(
"listJoin");
797 return ERROR_INT(
"&head1 not defined", procName, 1);
799 return ERROR_INT(
"&head2 not defined", procName, 1);
802 if ((head2 = *phead2) == NULL)
806 if ((head1 = *phead1) == NULL) {
void listDestroy(DLLIST **phead)
listDestroy()
void * listRemoveFromHead(DLLIST **phead)
listRemoveFromHead()
DLLIST * listFindTail(DLLIST *head)
listFindTail()
l_int32 listGetCount(DLLIST *head)
listGetCount()
void * listRemoveFromTail(DLLIST **phead, DLLIST **ptail)
listRemoveFromTail()
void * listRemoveElement(DLLIST **phead, DLLIST *elem)
listRemoveElement()
l_ok listReverse(DLLIST **phead)
listReverse()
l_ok listInsertBefore(DLLIST **phead, DLLIST *elem, void *data)
listInsertBefore()
l_ok listAddToTail(DLLIST **phead, DLLIST **ptail, void *data)
listAddToTail()
l_ok listAddToHead(DLLIST **phead, void *data)
listAddToHead()
l_ok listInsertAfter(DLLIST **phead, DLLIST *elem, void *data)
listInsertAfter()
l_ok listJoin(DLLIST **phead1, DLLIST **phead2)
listJoin()
DLLIST * listFindElement(DLLIST *head, void *data)
listFindElement()