设计一个单链表的类模板,使其能够完成单链表的创建和显示

来源:互联网 发布:中国瓷器品牌知乎 编辑:程序博客网 时间:2024/05/01 21:01

//设计一个单链表的类模板,使其能够完成单链表的创建和显示
#include <iostream>
using namespace std;
template <class T>
class List
{
private:
 T data;
 List *next; 
 static List *curnode;                         //当前节点指针,静态数据成员,为List类的所有对象所共有
 static List *head;                             //头指针,静态数据成员,为List类的所有对象所共有
public: 
 List():next(NULL)                             //无惨构造函数,用于构造新节点
 {
  head=curnode=this;
 }
 List(T newdata):data(newdata),next(NULL)
 {}
 void create(T newnode);
 void display();
};
template <class T>
List<T>*List<T>::curnode;
template <class T>
List<T>*List<T>::head;
template <class T>
void List<T>::create(T newdata)
{
 curnode->next=new List(newdata);
 curnode=curnode->next;
}
template <class T>
void List<T>::display()
{
 curnode=head->next;
 while(curnode!=NULL)
 {
  cout<<curnode->data<<endl;
  curnode=curnode->next;
 }
}
void main()
{
 List<int>list1;                              //调用无惨构造函数
 list1.create(2);
 list1.create(0);
 list1.create(1);
 list1.create(0);
 list1.display();
 List<char>list2;
 list2.create('O');
 list2.create('K');
 list2.create('!');
 list2.display();
}

原创粉丝点击