33,321
社区成员




template< class NODETYPE >
class List
{
public:
List(); //constructor
~List(); //destructor
void insertAtFront( const NODETYPE & );
void insertAtBack( const NODETYPE & );
bool removeFromFront( NODETYPE & );
bool removeFromBack( NODETYPE & );
bool isEmpty() const;
void print() const;
private:
ListNode< NODETYPE > *firstPtr; //pointer to first node
ListNode< NODETYPE > *lastPtr; //pointer to last node
//Utility function to allocate a new node
ListNode< NODETYPE > *getNewNode( const NODETYPE & );
};
template< class NODETYPE >
void List< NODETYPE >::insertAtFront( const NODETYPE &value )
{
ListNode< NODETYPE > *newPtr = getNewNode( value );
if ( isEmpty() ) //List is empty
firstPtr = lastPtr = newPtr;
else
{
//List is not empty
/*nextPtr为另一个类数据成员,这里newpPtr->nextPtr什么意思,newPtr不是类对象,能这样调用nextPtr数据成员吗?*/
newPtr ->nextPtr = firstPtr; //?
firstPtr = newPtr;
}
}