2、插入(后插)
假設(shè)在一個(gè)單鏈表中存在2個(gè)連續(xù)結(jié)點(diǎn)p、q(其中p為q的直接前驅(qū)),若我們需要在p、q之間插入一個(gè)新結(jié)點(diǎn)s,那么我們必須先為s分配空間并賦值,然后使p的鏈域存儲(chǔ)s的地址,s的鏈域存儲(chǔ)q的地址即可。(p->link=s;s->link=q),這樣就完成了插入操作。
下例是應(yīng)用插入算法的一個(gè)例子:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define N 10
typedef struct node
{
char name[20];
struct node *link;
}stud;
stud * creat(int n) /*建立單鏈表的函數(shù)*/
{
stud *p,*h,*s;
int i;
if((h=(stud *)malloc(sizeof(stud)))==NULL)
{
printf(“不能分配內(nèi)存空間!”);
exit(0);
}
h->name[0]=’