www.pudn.com > View3D.zip > linklist.h
#ifndef LINK_LIST_H #define LINK_LIST_H #includeusing namespace std; template class LinkList { public: LinkList(); int append(T * E); int prepend(T * E); int length(); int erase(T * E); public: T * begin; T * end; int size; }; template LinkList ::LinkList() { begin = NULL; end = NULL; size = 0; } template int LinkList ::append(T * E) { if(begin == NULL && end == NULL){ begin = E; end = E; end->next = NULL; begin->prev = NULL; }else{ end->next = E; E->prev = end; end = E; end->next = NULL; } size ++; return 1; } template int LinkList ::prepend(T * E) { if(begin == NULL && end == NULL){ begin = E; end = E; end->next = NULL; begin->prev = NULL; }else{ begin->prev = E; E->next = begin; begin = E; begin->prev = NULL; } size ++; return 1; } template int LinkList ::erase(T * E) { if(begin == E){ begin = E->next; begin->prev = NULL; }else if(end == E){ end = E->prev; end->next = NULL; }else{ E->prev->next = E->next; E->next->prev = E->prev; } E->prev = NULL; E->next = NULL; size--; return 1; } #endif