一、单链表结构定义
typedef void(myOpFunType)(void*); ///< 定义操作函数类型
typedef int linkType; ///< 定义链表结点数据域数据类型
/// @brief 链表结点定义
typedef struct t_linkNode
{
struct t_linkNode* pnext; ///< 结点指针域
linkType data; ///< 结点数据域
}myLNode;
/// @brief 链表结构定义
typedef struct t_linkList
{
myLNode* phead; //< 链表头结点
}myLinkList;
二、尾插法
/// @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;
}
标签:结点,单链,return,ptai,myLNode,链表,插入,phead From: https://www.cnblogs.com/kxwslmsps/p/17120764.html