如下代码:
///插入元素,在指定位置插入给定的值
//在指定位置之后插入
void insert_After_LkList(LinkListNode *ptr,ElemType x)
{
LinkListNode *s;
s = (LinkListNode *)malloc(sizeof(LinkListNode));
s->data = x;
s->pNext = ptr->pNext;
ptr->pNext = s;
}
//在指定元素之后插入
void insert_Before_LkList(LinkListNode *pHead,LinkListNode *ptr,ElemType x)
{
LinkListNode *s,*qPtr;
s = (LinkListNode *)malloc(sizeof(LinkListNode));
s->data = x;
qPtr = pHead; //qPtr是用来代替pHead的移动的,ptr是目标结点
while(qPtr->next !=ptr)
{
qPtr = qPtr->pNext;
}
s->pNext = ptr;
qPtr->pNext = s;
//因为链表是单向的,虽然我知道当前结点是ptr但是在语法层面上我如果想知道ptr的前继结点必须通过遍历
//查到了当前结点的前继,才能使用后插的方法完成结点的加入
}