typedef struct LNode{
int data;
struct LNode* next;
}LNode, *LinkList; //这里LNode 和 *LinkList 等价,只不过LNode更强调一个结点,LinkList更强调一个链表。
//指定结点的后插操作:在p结点之后插入元素e
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保存数据元素e
s -> next = p -> next;
p -> next = s; //将结点s连到p之后
return true;
}
//指定结点的前插操作:在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; //新结点s连接到p之后
s -> data = p -> data; //将p中元素复制到s中
p -> next = s;
p -> data = e; //将e赋值给p结点
return true;
}
前插法示意