//This is the implementation file from display 17-15. This file contains //function definitions for the functions declared in listtools.h. // //This file is the same as listtools.cpp. #include #include "listtools.h" namespace LinkedListSavitch { template void headInsert(Node*& head, const T& theData) { head = new Node(theData, head); } template void insert(Node* afterMe, const T& theData) { afterMe->setLink(new Node(theData, afterMe->getLink( ))); } template void deleteNode(Node* before) { Node *discard; discard = before->getLink( ); before->setLink(discard->getLink( )); delete discard; } template void deleteFirstNode(Node*& head) { Node *discard; discard = head; head = head->getLink( ); delete discard; } //Uses cstddef: template Node* search(Node* head, const T& target) { Node* here = head; if (here == NULL) //if empty list { return NULL; } else { while (here->getData( ) != target && here->getLink( ) != NULL) here = here->getLink( ); if (here->getData( ) == target) return here; else return NULL; } } }//LinkedListSavitch