sclist.h
Code:
#ifndef SCLIST_H
#define SCLIST_H
#include "slnode.h"
template<class T>
class sclist
{
public:
//default constructor
sclist();
//deconstructor
~sclist();
//inserts a node at the head of the list
void InsertAtHead(const T&);
//inserts a node at the tail of the list
void InsertAtTail(const T&);
//returns a pointer to the node removed
//from the head of the list
slnode<T>* RemoveFromHead();
//returns a pointer to the node removed
//from the tail of the list
slnode<T>* RemoveFromTail();
//true if the list is empty, otherwise false
bool IsEmpty();
//moves headPtr one node forward in the list
void Advance();
//returns a pointer to the first node in the list
//starting from the head of the list, that contains
//the indicated data. If the data is not in the list,
//returns NULL.
slnode<T>* Locate(T data);
private:
T* headPtr;
int size;
};
#include "sclist.template"
#endif