一、单链表尾插法
思路:
- 用指针ptail遍历链表,遍历条件是
ptail->pnext!=NULL
- 遍历结束后,ptail指向了链表尾结点,直接令ptail指向新结点即可
- 代码:
/// @brief 在链表尾部插入元素x,即尾插法
/// @param plist 链表指针
/// @param x 待插元素
/// @return 返回插入是否成功
/// @retval ERROR(0):链表不存在,不可操作
/// @retval - ERR_OVERFLOW(-2):创建新结点失败,插入失败
/// @retval OK(1):插入成功
status xxx_push_back(myLinkList* plist, linkType x)
{
if (plist == NULL)
{
return ERROR;
}
return xxx_push_back_(plist->phead, x);
}
status xxx_push_back_(myLNode* phead, linkType x)
{
if (phead == NULL)
{
return ERROR;
}
/// 创建新结点,存放x元素
myLNode* pnew = xxx_createNode(x);
if (pnew == NULL)
{
return ERR_OVERFLOW;
}
myLNode* ptai = phead;
/// 遍历链表,最终ptail指向尾结点,停止遍历
while (ptai->pnext != NULL)
{
ptai = ptai->pnext;
}
ptai->pnext = pnew;
return OK;
}