王道数据结构p40.二.0

设计一个递归算法,删除不带头结点的单链表L中的所有值为x的结点。

解:设f(L,x)的功能是删除以L为首结点指针的单链表中所有值等于x的结点,显然f(L->next,x)的功能是删除以L->next为首结点指针的单链表中所有值等于x的结点。由此,可以推出递归模型如下。
        终止条件:f(L,x)≡不做任何事情;                        若L为空表
        递归主体:f(L,x)≡删除*L结点;f(L->next,x);        若L->data == x
                          f(L,x)≡f(L->next,x);                              其他情况

代码如下:

void Del_X3(Linklist &L,ElemType x){
//递归实现在单链表L中删除值为X的结点LNode *p;if(L == NULL)return ;if(L->data == x){p=L;L=L->next;free(p);Del_X_3(L,x);           //递归调用}else                        //若L所指结点的值不为xDel_X_3(L->next, x);   //递归调用
}

问题:free是否会导致断链

由于是递归原因,当L->data==x时,L=L->next会改变上一层中L的指向,free(p)可以成功的删除节点而不会导致断链

只要删除结点时使用到了else中的参数传递,该代码能够成功执行删除操作,不会导致断链。

数据结构考研学习关于free是否会导致断链问题相关推荐

  1. 数据结构考研学习笔记

    计算机考研机试备考(王道) 第二章 暴力求解 1.枚举策略 常见复杂度对应数据量表 例题2.1 abc #include <iostream> using namespace std; i ...

  2. 中根遍历二叉查找树所得序列一定是有序序列_数据结构考研学习笔记(九)树、森林...

    点击上面蓝字关注我们 树.森林 1. 树的存储结构 1.1 双亲表示法 1.2 孩子表示法 1.3 孩子兄弟表示法 2. 树. 森林与二叉树的转换 3. 树和森 林的遍历 4. *书的应用-并查集 1 ...

  3. 2023王道数据结构P40题二.1,关于是否会断链的问题

    链表在删除一个结点p时为保证不断链,需要在删除前将p的前驱与后继链接起来,即p的前驱的指针域指向p的后继的地址,若将p的前驱记作q,可表示为q->next = p->next,也即为q-& ...

  4. 关于数据结构的学习目标

    能下定决心记录点东西,或者告诉自己也要在这个世界上留下点什么.首先要感谢我大学时候的数据结构老师(虽然我成了教育的漏网之鱼).感谢严蔚敏老师的数据结构pdf(实体书大学毕业卖了).小甲鱼数据结构与算法 ...

  5. 肝下十万字的《数据结构考研》笔记,你对数据结构理解水平将从入门到入魔❤️

    第一章 绪论 1.1基本概念 1.1.1基本术语   相关术语:数据.数据元素.数据对象.数据类型和数据结构.   数据(data)是对客观事物的符号表示,它能被计算机识别.存储和加工处理,它是计算机 ...

  6. 南京邮电大学811《数据结构》学习之路

    大学物联网工程专业,没有计组.计网.微原和通原的我,不知道怎么在这个交叉学科中活下去(学校优秀,认为随着政策的利好,学生都有工作课程随意点).认认真真考研,开始更新南京邮电大学811<数据结构& ...

  7. 北京工商大学计算机考研818真题,2018年北京工商大学818数据结构考研大纲

    资源大小:0.1-10.0 MB 资源类型: rar 发布时间: 2020/5/14 23:35:45 资源评分: ★★★ 资源简介: 2018年北京工商大学818数据结构考研大纲 下载流程: 考研真 ...

  8. 快速排序的难点_数据结构考研重难点解析:快速排序

    数据结构是计算机专业考研重点内容,大部分院校都是考到了数据结构,其中快速排序是其中的重点难点内容,因此中公考研计算机教研室为大家整理的"数据结构考研重难点解析:快速排序",希望对大 ...

  9. ES6基础4(数据结构)-学习笔记

    文章目录 ES6基础4(数据结构)-学习笔记 set map symbol ES6基础4(数据结构)-学习笔记 set //set 数据结构 类似数组 成员信息唯一性var s = new Set() ...

最新文章

  1. 在ARC环境中autoreleasepool(runloop)的研究
  2. 生命或可在星际间传播
  3. SpringMVC、Spring和Struts的区别
  4. C++ 虚函数和纯虚函数
  5. 用Python写的一个monkeyrunner小工具(支持手机截图与定时截图,手机屏幕的显示)
  6. linux ngx listen的解析
  7. f12获取网页文本_8招教你快速搞定网页内容禁止复制粘贴,想怎么复制就怎么复制...
  8. C语言6F多少,求助!!请人帮忙画C语言程序流程图.紧急!!!
  9. SpringCloud工作笔记069---The Hystrix timeout of 60000ms for the command sc-auth is set lower than the
  10. 电子元件 —— 二极管
  11. python 占位符 %z_python-如何用z替换熊猫数据框中的负数
  12. html链接打开word文档,一招教你在Word文档中创建超链接打开其他文件
  13. 终于找到淘口令的坑了
  14. 亚马逊查询关键词排名的工具_亚马逊关键词的概念和查找工具
  15. Q3亏损收窄预计Q4季度实现盈利,趣头条走上盈利分水岭靠什么?
  16. 拼多多搜索词统计 API接口操作展示说明
  17. Java多线程socket网络协议传输
  18. 记vue+drf前后端分离学习过程(2)
  19. Real-Time High-Resolution Background Matting
  20. 矿大计算机学院辅导员,2019届矿大毕业生,辅导员有话对你说!(二)

热门文章

  1. NVIDIA GPU运算能力与CUDA显卡驱动
  2. 【中山市选2011】新年礼物
  3. 招银网络科技--电话面试面经
  4. con not set com.xxx field com.xxx to com.sun.proxy.$proxy23问题
  5. PyQt5下界面设计, 无边框加阴影界面, 鼠标左键移动事件
  6. ElasticSearchTemplate加中文筛选后无结果的解决办法
  7. “京东钱包” 体验报告
  8. 神经网络和深度学习(二)——一个简单的手写数字分类网络
  9. FaceTrackingDemo程序原理及实现的功能
  10. Xcode iOS 的模拟器 Simulator 模拟网络环境