Header file
# Ifndef list_h # define list_hnamespace wyp {template <class T> class node {public: node (const T & Data, node <t> * link): data (data ), link (Link) {} node <t> * getlink () {return link;} const t getdata () {return data;} void setdata (const T & Data) {This-> DATA = data;} void setlink (node <t> * link) {This-> link = link;} PRIVATE: t data; node <t> * link ;}; template <class T> void headinsert (node <t> * & head, const T & data ); template <class T> void insert (node <t> * after, const T & data); Template <class T> void deletenode (node <t> * Before ); template <class T> void deletefirstnode (node <t> * & head); Template <class T> node <t> * search (node <t> * head, const T & Data) ;}# endif
Implementation
# include
# include "list. H "namespace wyp {template
void headinsert (node
* & head, const T & Data) {head = new node
(data, head);} template
void insert (node
* after, const T & Data) {after-> setlink (new node
(data, after-> getlink ();} template
void deletenode (node
* Before) {node
* discard; discard = before-> getlink (); before-> setlink (DIS Card-> getlink (); Delete discard;} template
void deletefirstnode (node
* & head) {node
* discard; discard = head; head = discard-> getlink (); Delete discard;} template
node
* search (node
* head, const T & Data) {node
* Here = head; If (here = NULL) {return NULL;} else {While (here-> getdata ()! = Data & here-> getlink ()! = NULL) {here = here-> getlink ();} If (here-> getdata = data) {return here ;}else {return NULL ;}}}}