//#include <iostream>
class DLLElement {
public:
DLLElement( void *itemPtr, int sortKey);
//void *operator new(size_t size) { return malloc(size);}
//DLLElement &operator=(const DLLElement &);
DLLElement *next;
DLLElement *prev;
int key;
void *item;
};
class DLList {
public:
DLList();
~DLList();
void Prepend(void *item);
void Append(void *item);
void *Remove(int *keyPtr);
bool IsEmpty();
void SortedInsert(void *item, int sortKey);
void *SortedRemove(int sortkey);
private:
DLLElement *first;
DLLElement *last;
};
void ListInsert(int N, DLList *List);
void ListRemove(int N, DLList *List);