C语言实现单链表节点的删除(带头结点)
来源:互联网 发布:江南龙族大画集淘宝店 编辑:程序博客网 时间:2024/04/30 02:39
我在之前一篇博客《C语言实现单链表节点的删除(不带头结点)》中详细实现了如何在一个不带头结点的单链表的删除一个节点,在这一篇博客中我改成了带头结点的单链表。代码示例上传至 https://github.com/chenyufeng1991/DeleteLinkedList_HeadNode。删除类型有两种:
(1)删除某个位置pos的节点;
(2)判断x值是否在链表中,若存在则删除该节点;
核心代码如下:
//删除某个位置pos的节点Node *DeletePosNode(Node *pNode,int pos){ int i = 1; Node *pMove; Node *pMovePre; pMovePre = pNode; pMove = pNode->next; while (pMove != NULL) { if (i == pos) { pMovePre->next = pMove->next; free(pMove); pMove = NULL; printf("%s函数执行,在pos=%d位置删除节点成功\n",__FUNCTION__,pos); return pNode; } i++; pMovePre = pMovePre->next; pMove = pMove->next; } printf("%s函数执行,在pos=%d位置删除节点失败\n",__FUNCTION__,pos); return pNode;}//判断x值是否在链表中,若存在则删除该节点Node *DeleteValueNode(Node *pNode,int x){ Node *pMovePre; Node *pMove; pMovePre = pNode; pMove = pNode->next; while (pMove != NULL) { if (pMove->element == x) { pMovePre->next = pMove->next; free(pMove); pMove = NULL; printf("%s函数执行,删除value=%d节点成功\n",__FUNCTION__,x); return pNode; } pMovePre = pMovePre->next; pMove = pMove->next; } printf("%s函数执行,删除value=%d节点失败\n",__FUNCTION__,x); return pNode;}
1 0
- C语言实现单链表节点的删除(带头结点)
- C语言实现单链表的节点插入(带头结点)
- C语言实现单链表节点的删除(不带头结点)
- C语言实现非循环双链表节点的删除(带头结点尾结点)
- C语言实现非循环双链表节点的删除(不带头结点)
- C语言实现单链表(不带头结点)节点的插入
- C语言实现双向非循环链表(带头结点尾结点)的节点插入
- 不带头结点的单链表的实现(C语言)
- C语言实现单链表(带头结点)的基本操作
- C语言实现单链表的逆序打印(带头结点)
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- C语言实现双向非循环链表(不带头结点)的节点插入
- C语言实现单链表-不带头结点
- 带头结点的链队列实现(C语言)
- 带头结点的链队列实现(C语言)
- 带头结点的链队列实现(C语言)
- C语言实现单链表(不带头结点)
- Eclipse常用的快捷键在AS中的对应
- Java多态性理解
- Java进阶06 容器
- 将手机号,银行卡,身份证只显示前三位和后四位。为了保护用户的信息
- mysql存储过程
- C语言实现单链表节点的删除(带头结点)
- Android中ListView右边的导航栏自定义
- 深入理解HTTP Session
- Android粒子效果之雨
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
- VBA教程初级(一):简单宏
- 串口编程 tcflush()函数
- POJ 1236 Network of Schools【强连通分量分解&&缩点||tarjan&&缩点】
- JavaScript 闭包