以下是添加头节点的代码:
void CList::AddHead(DATA data)
{
SNode*p = new SNode;
p->data = data;
if (m_pHead)
{
m_pHead->pPrev = p;
}
else {
m_pTail = p;//链表为空第一次添加节点时候才会执行这一步
}
p->pPrev = nullptr;
p->pNext = m_pHead;
m_pHead = p;
++m_nCount;
}
以下是添加尾节点的代码:
void CList::AddTail(DATA data)
{
SNode*p = new SNode;
p->data = data;
if (m_pTail)
{
m_pTail->pNext = p;
}
else {
m_pHead = p;//链表为空第一次添加节点时候才会执行这一步
}
p->pPrev = m_pTail;
p->pNext = nullptr;
m_pTail = p;
++m_nCount;
}
以下是删除结点(代码多的是蠢办法,代码少的是大牛的代码):
//蠢办法
void CList::RemoveAt(POSITION p)
{
if (m_nCount == 0)
{
cout &