一、定义结点
struct Node
{
Node(int data=0)
{
mdata = data;
mpnext = NULL;
}
int mdata;
Node *mpnext;
};
二、定义单链表类
class CLink
{
public:
CLink()//构造函数
{
mphead = new Node();
}
~CLink()//析构函数
{
Node *pcur = mphead;
while (pcur != NULL)
{
mphead = mphead->mpnext;
delete pcur;
pcur = mphead;
}
}
private:
Node *mphead;//指向头结点的指针
}
拷贝构造函数
CLink(const CLink &src)
{
mphead = new Node();
Node *plast = mphead;
Node *pcur = src.mphead->mpnext;
while (pcur != NULL)
{
Node *pnew = new Node(pcur->mdata);//从首元结点开始复制
plast->mpnext = pnew;
plast = pnew;
pcur = pcur->mpnext;
}
}
头插法
void insertHead(int data)
{
Node *pcur = new Node(data);
pcur->mpnext = mphead->mpnext;
mphead->mpnext = pcur;
}
尾插法