void *head;
void *tail;
int loffset;
+ int num_items;
public:
dlist(void *item, void *link);
void init(void *item, void *link);
void insert_after(void *item, void *where);
void remove(void *item);
bool empty();
+ int size();
void *next(void *item);
void *prev(void *item);
void destroy();
{
head = tail = NULL;
loffset = (char *)link - (char *)item;
+ num_items = 0;
}
/* Constructor */
{
return head == NULL;
}
+
+inline int dlist::size()
+{
+ return num_items;
+}
+
inline void * dlist::operator new(size_t)
{