链表的操作------元素的删除

上次写了对链表的认识和在链表中插入元素,今天就来写写链表中元素的删除。

链表的删除为按元素的值进行删除;

pCur 表示要删除的结点;pfront 表示要删除结点的前置结点,让其的指针域保存下一个结点的地址,则将pCur删除。

具体代码如下:

PLink Search(PLink phead, ELEM_TYPE val) // 查找链表中的元素
{
	PLink pCur = phead;
	while (pCur->pnext != NULL)
	{
		if (pCur->pnext->mdata == val)
		{
			return pCur;
		}
		pCur = pCur->pnext;
	}
	return NULL;
}


bool DeleteKey(PLink phead, ELEM_TYPE val)
{
	if (phead == NULL)
	{
		return false;
	}          // 判断链表结构是否合理
	PLink pfront = Search(phead, val);
	if(pfront == NULL)
	{
		return false;
	}
	PLink pCur = pfront->pnext;
	pfront->pnext = pCur->pnext;  //对链表进行删除
	free(pCur);
	return true;
}

猜你喜欢

转载自blog.csdn.net/YANG_1605/article/details/84570560
今日推荐