C++语言程序设计

| 例8-13

void Insert(node* &head，node* position)
{
node * before, *current;
before = current = head;
//搜索链表，确定指针before和current
while (current!=NULL)
if(current->data >= position ->data) break;
else{
before = current;
current = current->next;
}
//插入结点position
if(current == head){ //插在链表头
position ->next = head;
head = position;
}
else{ //插在链表中间
before ->next = position;
position ->next = current;
}
}

在链表中插入结点，就是改变链表相关结点之间的链接关系（参见图8-3、图8-4），但要处理结点插在链表头的情形。表头指针head定义为引用，是为了Insert()函数返回后,能将head值带回到调用函数。