博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、插入函数

1、思路

  • 用指针p遍历链表,pre记录p结点前驱,pnew指向新建结点
  • p->data==key时,在pre与p之间插入pnew即可。
  • 链表遍历完,也承之完成了插入操作

2、代码

/// @brief 在key元素所在结点前插入元素值为x的新结点
void yyy_insert(myLNode* phead, linkType key, linkType x)
{
	if (phead == NULL || phead->pnext == NULL)
	{
		return;
	}
	myLNode* p = phead->pnext;
	myLNode* pre = phead;
	myLNode* pnew = NULL;
	while (p != NULL)
	{
		if (p->data == key)
		{
			pnew = (myLNode*)malloc(sizeof(myLNode));
			assert(pnew);
			pnew->data = x;
			pnew->pnext = pre->pnext;
			pre->pnext = pnew;
		}
		pre = p;
		p = p->pnext;
	}
}