码迷,mamicode.com
首页 > 其他好文 > 详细

单链表 | | 按位序删除&指定结点删除

时间:2020-04-16 22:20:25      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:ret   color   扫描   nod   单链表   tde   list   int   头结点   

//按位序删除(带头结点)
bool ListDelete(LinkList &L ,int i,int &e){
    if(i<1)
    return false;
    LNode *p;   //指针p指向当前扫描结点 
    int j=0;   //当前p指向的是第几个结点 
    P=L;       //L指向头结点,头结点是第0个结点,不存放数据 
    if(p!=NULL&&j<i-1){ //循环找到第i-1个结点
      p=p->next;
      j++; 
    }
    if(P==NULL) //i值不合法
     return false;
    if(p->next==NULL) //第i-1个结点后已无其它结点 
     return false;

     LNode*q=p->next; //令q指向被删除的结点
     e=q->data;
     p->next=q->next;
     free(q); 
     return true; 
} 

 

//删除指定结点
bool DeleteNode(LNode *p){
    if(p==NULL)
      return false;
      LNode *q=p->next;  //令q指向*p的后继结点
      p->data=p->next->data;  //和后继结点交换数据域
      p->next=q->next;
      free(q);
      return true; 
}
//如果p结点是最后一个结点,则只能从表头开始依次寻找p的前驱 ,时间复杂度O(n)

 

单链表 | | 按位序删除&指定结点删除

标签:ret   color   扫描   nod   单链表   tde   list   int   头结点   

原文地址:https://www.cnblogs.com/ikigai18/p/12716135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!