#include using namespace std; //每个人的号码和密码。 struct people { int NO; int pass; }node; template class Link { private: static Link * freelist;//静态数据成员的头接点。 public: struct people element; Link* next; Link(people elemval,Link* nextval=NULL) { element.NO=elemval.NO; element.pass=elemval.pass; next=nextval; } Link(Link* nextval=NULL) { next=nextval; } void* operator new(size_t);// 重载new 函数。 void operator delete(void*);//重载delete函数。 }; template class LList { private: Link *head; Link *tail; Link *fence; void init() { head=tail=fence=new Link ; tail->next=head->next; //生成链表是要把它的头接点和尾接点连接起来构成循环链表。 //因为有一个空的头接点。所以要把他的尾接点接到头接点的下一个指针。 } void removeall() { while(head!=NULL) { fence=head; fence=fence->next; delete fence; } } public: LList() { init(); } ~LList() { removeall(); } bool insert(const people& T); bool remove(Elem&); void getOut(int&,int&); void prev(); bool append(const people& T); }; 太长了。。。。去这里看 http://blog.programfan.com/article.asp?id=23037