#include<iostream>
using namespace std;
class Link
{
public:
Link()//构造函数
{
_phead = new Node();
}
~Link()//析构函数
{
Node* pCur = _phead;
Node* _pNext = pCur;
while(pCur != NULL)
{
_pNext = pCur->_pnext;
delete pCur;
pCur = _pNext;
}
_phead = NULL;
}
void insertHead(int val)//头插法
{
Node* pnewnode = new Node(val);
pnewnode->_pnext = _phead->_pnext;
_phead->_pnext = pnewnode;
}
void insertTail(int val)//尾插法
{
Node* pnewnode = new Node(val);
Node* ptail = _phead;
while(ptail->_pnext != NULL)
{
ptail = ptail->_pnext;
}
ptail->_pnext = pnewnode;
}
void deleteNode(int val)//删除链表所有值为val的节点
{
Node* pfront = _phead;
Node* pCur = NULL;
while(pfront->_pnext != NULL)
{
if(pfront->_pnext->_data == val)
{
pCur = pfront->_pnext;
pfront->_pnext = pCur->_pnext;
delete pCur;
}
else
{
pfront = pfront->_pnext;
}
}
}
void Show()
{
Node* pCur = _phead->_pnext;
while(pCur != NULL)
{
std::cout<<pCur->_data<<"";
pCur = pCur->_pnext;
}
std::cout<<std::endl;
}
private:
class Node
{
public:
Node(int data = 0):_data(data),_pnext(NULL){}
int _data;
Node *_pnext;
};
Node* _phead;
};
int main()
{
return 0;
}
类方法实现带头节点的单链表代码
猜你喜欢
转载自blog.csdn.net/qq_43824618/article/details/102470363
今日推荐
周排行