欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}

C++类模板编写链栈

相关标签: C++