C++类模板编写链栈
程序员文章站
2022-06-01 11:28:54
...
C++类模板编写链栈
C++为了提高代码的可重用性,提出了函数模板和类模板。用类模板写链栈,一是复习链表写法,二是学习类模板。
#include <iostream>
#include <cstring>
using namespace std;
template <class T>
class List
{
public:
List();
bool add(T t);
bool del(T &t);
~List();
protected:
struct Node
{
Node *pNext;
T data;
};
Node *pFirst;
};
template <class T>
List<T>::List()
{ pFirst=NULL;
cout<<"构造函数!"<<endl;
}
template <class T>
List<T>::~List()
{
cout<<"析构函数!"<<endl;
}
进栈出栈
template <class T>
bool List<T>::add(T t)
{
Node *p=new Node;
if(p==NULL)
{
cout<<"装不下了"<<endl;
return false;
}
else
{
p->data=t;
p->pNext=pFirst;
pFirst=p;
return true;
}
}
template <class T>
bool List<T>::del(T &t)
{
if(pFirst==NULL)
{
cout<<"空"<<endl;
return false;
}
else
{
Node *p2=pFirst;
pFirst=pFirst->pNext;
t=p2->data;
delete p2;
return true;
}
}
int main()
{
List<int> obj1;
int i;
for(int i=0;i<3;i++)
if(obj1.add(i))cout<<i<<endl;
while(obj1.del(i))cout<<i<<endl;
}