博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(四)单链接表算法之删除节点
阅读量:4322 次
发布时间:2019-06-06

本文共 1238 字,大约阅读时间需要 4 分钟。

(四)单链接表算法之删除节点

思路分析

第一种情况:删除的节点不是尾节点

删除的节点不是尾节点删除的节点不是尾节点

 

  • 找到需要删除的某一节点;
  • 保存删除节点的前一节点指针pPrev;
  • pPrev-> pNext = p ->pNext;
  • 释放当前节点内存;
    第二种情况:删除的节点是尾节点
删除尾节点删除尾节点
  • 移动到尾节点
  • 保存尾节点的前一节点指针pPrev;
  • pPrev -> pNext = NULL;
  • 释放删除节点空间。

代码实现

1/*  2 *pH :头节点  3 *data: 要删除节点的值  4 */  5int dalete_node(struct node *pH,int data)  6{
7    struct node *p = pH;                //p用来指向当前节点 8    struct node *pPrev = NULL;          //用来保存删除节点的前一个节点指针 9    while(NULL ! = p -> pNext)          //循环遍历 10    {
11        pPrev = p;                      //先保存p到pPrev 12        p = p ->pNext;                  //移动到下一节点,这里跳过了头节点 13        if(p -> data == data)           //找到删除的节点 14        {
15            if(NULL == p -> pNext)      //判断是否为尾节点 16            {
17                pPrev -> pNext = NULL;  //删除节点 18                //free(p);                //释放节点 19            } 20            else 21            {
22                pPrev -> pNext = p -> pNext;  //删除节点 23                //free(p);                      //释放节点 24            } 25            free(p);                      //释放节点 26            return 0;                     //删除成功,返回 27        } 28    } 29    printf("没有需要删除的节点.\n"); 30    return -1; 31}

转载于:https://www.cnblogs.com/ywx123/p/10249381.html

你可能感兴趣的文章
把js写到链接a标签的href中和写到onclick中的区别
查看>>
压缩解压缩命令
查看>>
MySQL基于binlog主从复制
查看>>
HDU 1394(归并求逆序对)
查看>>
配置 Windows 下的 nodejs C++ 模块编译环境 安装 node-gyp
查看>>
我和Socket的第一次亲密接触
查看>>
2016/09/22
查看>>
2016/09/02
查看>>
项目中遇到的Redis缓存问题
查看>>
Effective Java 之-----静态工厂与构造器
查看>>
linux 命令(9) top
查看>>
Android消息处理(一)进程内通信
查看>>
利用office2010 word2010生成目录
查看>>
[ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题
查看>>
虚拟现实技术对人类是福还是祸?
查看>>
P3106 GPS的决斗
查看>>
hdoj1164
查看>>
简单工厂模式
查看>>
Using关键字的用法
查看>>
标准C程序设计七---60
查看>>