2.2.单链表的插入删除

图片来自B站王道考研(侵删)

请添加图片描述

插入

1.按位序插入(带头结点)
//在第i个位置插入元素e (带头结点)
bool ListInsert(LinkList &L,int i,ElemType e){
   
    if(i<1)
        return false;
    LNode *p;		//指针P指向当前扫描到的节点						}	这几行的目的是
    int j = 0;		//当前p指向的是第几个结点						 }		为了
    p = L;			//L指向头节点,头结点是第0个节点(不存数据)	   }	找到
    while(p!=NULL && j<i-1){
   	//循环找到第i-1个结点			   }	第i-1个
        p->next;//												}		结点
        j++;//													}
    }
    if(p==NULL)		//i值不合法,从此行开始到下面结束,是为了在找到第i-1个节点之后,插入一个新的节点
        return false;
    LNode *s = (LNode *)malloc(sizeof(LNode));//这一步malloc函数回升请一个新的结点
    s->data = e;	//将元素e装入到新的结点中
    s->next = p->next;	//原本p->null的,现在将新申请的结点s也指向p结点指向的下一个结点null
    p->next = s;	//将节点s连接到p之后(也就是将p指向s)
    return true;	//插入成功
}

typedef struct LNode{
   
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;
2.按位序插入(不带头结点)
bool LintInsert(LinkList &L,int i,ElemType e){
   
    if(i<1)
        return false;
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值