#include	<stdio.h>
#include	"list.h"

// The insertion of list items is fairly standard.

void emptyList::insert(emptyNode *p)
{
	len++;
	p->next = head;
	head = p;
	if (!tail)
		tail = p;
}

// The precaution in appending list items is checking for the empty list
// when tail is 0.

void emptyList::append(emptyNode *p)
{
	len++;
	if (tail)
		tail->next = p;
	else
		head = p;
	tail = p;
}

// The destruction operation of a list clears the nodes used in
// constructing the list.

emptyList::~emptyList()
{
	while (head) {
		emptyNode *toDelete = head;
		head = head->next;
		delete toDelete;
	}
}

// The member function get() detaches the first item and updates the
// list appropriately.  Destruction of the node is left to the caller.

emptyNode *emptyList::get()
{
	emptyNode *p = head;
	if (head) {
		head = head->next;
		--len;
		if (!head)
			tail = 0;
	}
	return p;
}


syntax highlighted by Code2HTML, v. 0.9.1