STL-单向链表类模板

来源:互联网 发布:火炬之光2for mac汉化 编辑:程序博客网 时间:2024/03/29 06:44


#include
using namespace std;

template
class ListNode
{
 private:
  TYPE data;
  ListNode *next;
  static ListNode *CurNode;
  static ListNode *head;
 public:
  ListNode()
  {
   next=NULL;
   head=CurNode=this; 
  }
  ListNode(TYPE NewData)
  {
   data=NewData;
   next=NULL;
  }
  void AppendNode(TYPENewNode);
  void DispList();
  void DelList();
};

template
ListNode *ListNode ::CurNode;
template
ListNode *ListNode ::head;

template
void ListNode::AppendNode(TYPE NewData)
{
 CurNode->next=new ListNode(NewData);
 CurNode=CurNode->next;
}
template
void ListNode::DispList()
{
 CurNode=head->next;
 while(CurNode!=NULL)
 {
  cout<<CurNode->data<<endl;
  CurNode=CurNode->next; 
 }
}
template
void ListNode::DelList()
{
 ListNode *q;
 CurNode=head->next;
 while(CurNode!=NULL)
 {
  q=CurNode->next;
  delete CurNode;
  CurNode=q; 
 }
 head->next=NULL;
}

int main()
{
 ListNode CList;
 CList.AppendNode('A');
 CList.AppendNode('B');
 CList.AppendNode('C');
 CList.DispList();
 CList.DelList();
 CList.DispList();
 return 0; 
}

原创粉丝点击