数据结构单链表:指定结点的前插、后插操作
指定结点的前插操作
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
//在p结点之前插入元素e
bool InsertPriorNode(LNode *p, int e){
if(p==NULL)
return false;
LNode *s = (LNode *)malloc(sizeof(LNode));
if(s==NULL) //内存分配失败
return false;
s->next = p->next;
p->next = s; //新结点s连到p之后
s->data = p->data; //将p中元素复制到s中
p->data = e; //p中元素覆盖为e
return true;
}
//核心思想:由于没法直接找到p结点的前结点,可以先把s结点插入p结点之后,
//再把p结点的数据复制到s结点,最后把p中数据赋值为新插入值e。
指定结点的后插操作
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
bool InsertNextNode(LNode *p, int e){
if(p==NULL)
return false;
LNode *s = (LNode *)malloc(sizeof(LNode));
if(s==NULL) //内存分配失败
return false;
s->data = e;
s->next = p->next;
p->next = s; //将结点s连到p之后
return true;
}
下一篇:
归并排序(python实现)
