#include
#include
#include "DoublyLinkedList.h"
/*
* Tests all functions of DoublyLinkedList
*/
int main()
{
DoublyLinkedList* dll = (DoublyLinkedList*)malloc(sizeof(DoublyLinkedList));
DoublyLinkedList_initialize(dll, (E)1);
int i = 2;
while(i <= 11)
{
DoublyLinkedList_addEntry(dll, (E)i);
i++;
}
DoublyLinkedList_removeEntry(dll);
DLLNode tmpnode = DoublyLinkedList_getTail(dll);
DoublyLinkedList_setData(dll, &tmpnode, (E)5);
DLLNode ptr = DoublyLinkedList_getHead(dll);
E tmp = -1;
/*
* Forward loop demo
*/
for(i = 0; i < DoublyLinkedList_getElements(dll); i++)
{
if(DoublyLinkedList_getData(ptr) == tmp)
{
printf("Null Pointer Exception\n");
break;
}
tmp = DoublyLinkedList_getData(ptr);
printf("%d\n", (int)DoublyLinkedList_getData(ptr));
ptr = DoublyLinkedList_getNext(ptr);
}
if(ptr.next != NULL || !DoublyLinkedList_equals(DoublyLinkedList_getTail(dll), ptr))
printf("Premature loop termination.\n");
printf("\n");
tmp = -1;
ptr = DoublyLinkedList_getTail(dll);
/*
* Backward loop demo
*/
for(i = 0; i < DoublyLinkedList_getElements(dll); i++)
{
if(DoublyLinkedList_getData(ptr) == tmp)
{
printf("Null Pointer Exception\n");
break;
}
tmp = DoublyLinkedList_getData(ptr);
printf("%d\n", (int)DoublyLinkedList_getData(ptr));
ptr = DoublyLinkedList_getPrev(ptr);
}
if(ptr.prev != NULL || !DoublyLinkedList_equals(DoublyLinkedList_getHead(dll), ptr))
printf("Premature loop termination.\n");
printf("\n");
printf("Head value: %d\n", (int)DoublyLinkedList_getData(DoublyLinkedList_getHead(dll)));
printf("Tail value: %d\n", (int)DoublyLinkedList_getData(DoublyLinkedList_getTail(dll)));
printf("No. of Elements: %d\n", DoublyLinkedList_getElements(dll));
printf("Press ENTER to continue");
gets((char*)&tmp);
return 0;
}
               (
geocities.com/yamzta333)