设计原则:单一职责
可读性,维护修改,安全,构造析构
#include<iostream>
using namespace std;
struct Node
{
int nValue;
Node* pNext;
};
class CList //链表类
{
private:
Node* m_pHead; //链表头尾,长度
Node* m_pEnd;
int m_nLength;
public:
Node* begin() //接口函数
{
return m_pHead;
}
Node* end()
{
return NULL;
}
public:
CList() //创建空链表
{
m_pHead = NULL;
m_pEnd = NULL;
m_nLength = 0;
}
CList(int nCount) //创建有nCount个结点的链表
{
// 初始化成员变量
m_pHead = NULL;
m_pEnd = NULL;
m_nLength = 0;
for (int i = 0;i < nCount;i++)
{
Push_Back(0);
}
}
~CList()
{
while(m_pHead)
Pop_Front();
}
public:
void Push_Back(int nValue) //在链表上添加一个数
{
//创建一个结点,把值装进去
Node* node = new Node;
node->nValue = nValue;
node->pNext = NULL;
//把这个结点放到链表的尾部
if(!m_pHead) //如果现在没有链表的时候
{
m_pHead = node;
m_pEnd = node;
}
else //链表