单链表的基本操作(二)

2.插入一个结点的操作
(1)在第i个元素前插入一个结点

Insertlist(Linklist L, int i, ElemType e) 
{
   cin>>e;//键入要插入的值
   p=L;j=0;
   while(p&&j<i-1)
   {
      p=p->next;
      j++
   }
   if(!p||j>i-1) return error;
   else 
   {
    q=(Lnode*)malloc(sizeof(Lnode));//申请一个新结点
    q->data=e;q->next=NULL;//初始化
    q->next=p->next; p->next=q;//插入
   }
}

(2)在值为x的元素之前插入元素e

Insertlist(Linklist L, int x, ElemType e) 
{
   cin>>e;//键入要插入的值
   while(!p&&p->next->data!=x)
   {
     p=p->next;
   }
   if(!p)return error;
   else
   {
    q=(Lnode*)malloc(sizeof(Lnode));//申请一个新结点
    q->data=e;q->next=NULL;//初始化
    q->next=p->next; p->next=q;//插入
   }
}
   

3.删除一个结点

Deletelist(Linklist head,int i, ElemType e)
{
 p=head;j=0;
 while(j<i-1)
 {
  p=p->next;
  j++;
 }
 q=(Lnode*)malloc(sizeof(Lnode));//申请一个新结点
 q=p->next;
 e=q->data;
 p->next=q->next;
 free(q);
}

4.清空线性表

Clearlist(Linklist l)
{
 while(L->next)
 {
  p=L->next;L->next=p->next;
  free(p);
 }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值