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

编程入门 行业动态 更新时间:2024-10-17 02:48:42

单链表按位序与指定<a href=https://www.elefans.com/category/jswz/34/1765314.html style=结点 删除"/>

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

按位序删除(带头结点)

#define NULL 0
#include<stdlib.h>typedef struct LNode
{int data;struct LNode* next;
}LNode, * LinkList;//按位序删除(带头结点)
bool ListInsert(LinkList& L, int i, int& e) {if (i < 1)return false;LNode* p = L;           //指针p指向当前扫描结点,目前指向头结点,是第0个int j = 0;              //当前p指向第几个结点while (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;                           //用e返回元素的值p->next = q->next;                //将*q结点从链中断开free(q);                          //释放结点的存储空间return true;
}

指定结点的删除

//删除指定结点p
bool DeleteNode(LNode* p) {if (p == NULL)return false;LNode* q = p->next;                  //令q指向*p的后继结点p->data = p->next->data;        //和后继结点交换数据p->next = q->next;                   //将*q结点从链中断开free(q);                             //释放后继结点的存储空间return true;
}


如果要删除的结点p是最后一个元素,代码不适用会报错

更多推荐

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

本文发布于:2023-11-15 04:20:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1593544.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:结点   链表   按位序

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!