对于链表来说,插入,删除和查找是重要的操作,由于链表不想顺序表那样,以数组的形式表示,不能直接根据下标进行操作,解决这个问题的一个方法就是自己创建一个数字进行操作
void list_insert(linklist l)//插入操作
{
int i,j,x;
i=0;
printf("请输入插入的位置和数据\n");
scanf("%d %d",&i,&x);
linklist p,r;
r=(node*)malloc(sizeof(node));//插入的结点,新分配空间用于存储数据
p=l->next;
while(p&&i<j)
{
i++;
p=p->next;
}
r->next=p->next;//插入的关键代码
p->next=r;
r->data=x;
}
void delete_list(linklist l)//删除操作
{
int i,j;
i=0;
printf("请输入删除的位置\n");
scanf("%d",&j);
linklist r,p;
r=(node*)malloc(sizeof(node));
p=l->next;
while(p&&i<j)
{
i++;
p=p->next;
}
r=p;//
p->next=r->next;//关键操作
free(r);//一定要释放空间
}