// LinkedListOne.cpp // revised 10 sep 04 tom bailey // to match the revision of node.h // revised 23 feb 04 tom bailey // Simplify. Add remove first method. // tom bailey 18 sep 02 // Define the methods of the LinkedList class. #include "LinkedListOne.h" LinkedList:: LinkedList() : start( NULL ) { } LinkedList:: ~LinkedList() { while( ! empty() ) { removeFirst(); } } void LinkedList:: insertAsFirst( double x ) { insertAsFirst( start, x ); } double LinkedList:: removeFirst() { return removeFirst( start ); } bool LinkedList:: empty() const { return start == NULL; } void LinkedList:: print( ostream & outfile ) const { Node * ptr = start; outfile << "[ "; while( ptr != NULL ) { outfile << ptr->store << " "; ptr = ptr->link; } outfile << "]"; } void LinkedList:: insertAsFirst( Node * & ptr, double x ) { ptr = new Node( x, ptr ); } double LinkedList:: removeFirst( Node * & ptr ) { double item = ptr->store; Node* oldPtr = ptr; ptr = ptr->link; delete oldPtr; return item; } ostream & operator<< (ostream & outfile, const LinkedList & list) { list.print( outfile ); return outfile; }