class template

来源:互联网 发布:网吧网络是多少兆宽带 编辑:程序博客网 时间:2024/04/30 08:55
/*******************************author: yomidate: 17.1.9mood: bangbangbangps: lalala*******************************////果然啊 自己写的确实是不如人家写的好 慢慢学吧 开启抄代码模式#include <iostream>using namespace std;class CNode{public:    CNode *m_pNext;    int m_Data;    CNode()    {        m_pNext = NULL;    }};template <class type>class CList{private:    type *m_pHeader;    int m_NodeSum;public:    CList()    {        m_pHeader = NULL;        m_NodeSum = 0;    }    type * MoveTail()    {        type *pTmp = m_pHeader;        for(int i=1; i<m_NodeSum; i++)        {            pTmp = pTmp->m_pNext;        }        return pTmp;    }    void AddNode(type *pNode)    {        if(m_NodeSum == 0)        {            m_pHeader = pNode;        }        else        {            type *pTail = MoveTail();            pTail->m_pNext = pNode;        }        m_NodeSum++;    }    void PassList()    {        if(m_NodeSum > 0)        {            type * pTmp = m_pHeader;            cout << pTmp->m_Data << ' ';            for(int i=1; i<m_NodeSum; i++)            {                pTmp = pTmp->m_pNext;                cout << pTmp->m_Data << ' ';            }        }    }    ~CList()    {        if(m_NodeSum > 0)        {            type *pDelete = m_pHeader;            type *pTmp = NULL;            for(int i=0; i<m_NodeSum; i++)            {                pTmp = pDelete->m_pNext;                delete pDelete;                pDelete = pTmp;            }            m_NodeSum = 0;            pDelete = NULL;            pTmp = NULL;        }        m_pHeader = NULL;    }};class CNet{public:    CNet *m_pNext;    char m_Data;    CNet()    {        m_pNext = NULL;    }};int main(){    CList<CNode>nodelist;    for(int i=0; i<5; i++)    {        CNode *pNode = new CNode();        pNode->m_Data = i;        nodelist.AddNode(pNode);    }    nodelist.PassList();    cout << endl;    CList<CNet>netlist;    for(int i=0; i<5; i++)    {        CNet *pNode = new CNet();        pNode->m_Data = 97+i;        netlist.AddNode(pNode);    }    netlist.PassList();    cout << endl;    return 0;}/*0 1 2 3 4a b c d eProcess returned 0 (0x0)   execution time : 1.898 sPress any key to continue.*/

0 0
原创粉丝点击