在一个链表节点后插入一个新的节点,如下图:
如要在节点elem = 5的节点后插入一个新节点,首先需要找到这个节点,用search函数:
link search(unsigned char elem)
{
link p;
for (p = head; p; p = p->next)
if (p->elem == elem)
return p;
return NULL;
}
这样我们找到了这个节点,下面要在这个节点这后插入一个新的节点:
void insert(elem)
{
link p = make_node(elem);
if(p == NULL) {
printf("out of memory\n");
exit(1);
}
if(head == NULL)
head = p;
q = search(5);
p->next = q->next;
q->next = p;
}
这样我们在elem = 5的节点后插入了一个新节点。