//設計一個單鏈表的類模板,使其能夠完成單鏈表的建立和顯示
#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();
}