返回首页   进站必读

17.3 节点插入


17.3 节点插入

在一个链表节点后插入一个新的节点,如下图:
如要在节点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的节点后插入了一个新节点。