在双链表中删除第i个节点算法如下:
首先要会:
双链表的存储结构定义:

typedef struct DLinkList{int data;DLinkList * prior;DLinkList * next;}DLinkList;

思路:
假设删除双链表L中*p 节点 , 的 后继节点 (我们将用q表示 — q = p->next;)
1.首先我们还是先查找 i-1 个节点
2.然后判断该位置是否为空,是,则返回0,否,则完成删除操作

总结: 1.先查找第i-1个节点 ,然后再完成删除节点。
2.插入节点要定义 s 指向生成的节点, 这里 不要定义那个,需要定义下一个的节点的指针 q = p->next;

C代码实现:

 int LinkInsert(DLinkList * &L,int i,int e){ int j = 0;DLinkList * p = L,* q;     //将s变为qwhile(j < i-1&& p != null){      //查找第i-1个节点j++;p = p->next;}if(p == null){            //不存在第i-1个节点return 0;}else{q = p->next;         //q指向要删除的节点if(q == null ) return 0;  //这里要判断是否存在第i个节点p->next = q->next;if(p->next != null) p->next->prior = p;free(q); //释放节点return 1;           }}

双链表(删除节点操作)相关推荐

  1. 双链表的相关操作(定义,后插,删除,遍历)

    双链表的相关操作 双链表的定义 双链表的插入(后插) 双链表的删除 销毁双链表 双链表的遍历 后向遍历 前向遍历 跳过头结点 主函数 双链表的定义 typedef struct DNode {Elem ...

  2. 单链表的头插法尾插法及删除节点操作

    带头节点的单链表的头插法尾插法及删除节点操作 链表的操作对于初学者来说理解非常有难度,初学的同学们应该在学习链表的过程中多再练习本上画图,写一行代码就画出代码执行后链表各节点图的变化,方便理解.我也是 ...

  3. 对java 链表删除节点 引用误区理解:对局部变量 cur= cur.next及cur.next=cur.next.next,及cur.next = cur.next.next.next的理解图解

    对java 链表删除节点 引用误区理解: 对java 链表删除节点 引用误区理解: 对局部变量 cur= cur.next及cur.next=cur.next.next,及cur.next = cur ...

  4. c语言 链表 删除节点,C语言实现单链表节点的删除(不带头结点)

    对单链表节点进行增删改查是最基本的操作,这篇博客将会来实现对节点的删除.其他的操作可参考<C语言实现链表的基本操作>这篇博客.删除某个节点有两个类型: (1)删除i某个位置的节点: (2) ...

  5. 单链表删除节点(p->next)与p的区别

    在插入链表的时候,while§而在删除链表的时候while(p->next)?这是为什么呢?因为删除算法中的循环条件(p->next && j<i-1)和插入算法中的 ...

  6. zTree 异步删除节点操作

    最近考虑使用 zTree 自带的编辑功能,但发现 beforeRemove 函数并不提供针对异步操作(如 AJAX.setTimeout)时的回调函数. 其实,要实现像这种需要根据异步返回结果来判断是 ...

  7. ng-zorro中表格树的动态添加、修改、删除节点操作

    在开发中,有时需要以表格树的形式加载数据,但是数据量特别大时,可能只是先加载一层,如果有子节点就在名称前显示一个"+"号或其它图标,然后点击"+"再展示子节点. ...

  8. 双链表偶数节点求和java_java--删除链表偶数节点

    public class ListNode { int data;//当前节点的值 ListNode next = null;//是指向下一个节点的指针/引用 public ListNode(int ...

  9. Java数据结构和算法:数组、单链表、双链表

    1. 概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的 ...

最新文章

  1. 前端资源整理 - 订阅、工具等
  2. unity 200.8m yoy_没错,Unity双十一来了
  3. BZOJ1563:[NOI2009]诗人小G(决策单调性DP)
  4. 最新版本mysql jdbc驱动包获取表定义信息空指针异常处理方法
  5. 百词斩和扇贝打卡测试与评估
  6. Unity中的单例方法
  7. Linux 下发邮件的方式
  8. C++STL之next_permutation()函数使用
  9. AR 圈最大收购案 Ubimax 10 亿“卖身”背后:究竟什么才是真正值钱的东西?
  10. 简单servlet和jdbc回顾
  11. 邮箱服务器端口以及各大型邮箱smtp服务器及端口收集
  12. 重磅!国内首个三维重建系列视频课程,涉及SFM、立体匹配、多视图几何、结构光等...
  13. Netty原理:Channel
  14. Html的页面演变史01
  15. 如何查看同一服务器上挂有多少个网站
  16. 关于activity的生命周期1
  17. 【数据分析】基于新闻文本数据分析
  18. 【Python基础】03 程序的控制流
  19. 足球/篮球专业术语(Football and Basketball terms)
  20. POI版本对比jar包升级后代码报错修正

热门文章

  1. KMP----next数组 最长相同前后缀 递归求法解释
  2. MySQL性能优化、故障排查及最佳实践秘籍,阿里云数据库专家玄惭的“武功”全记录...
  3. Spring4-JdbcDaoSupport-查询单列
  4. FPGA设计——全局曝光CMOS图像采集与USB2.0显示
  5. 基于SSL的mysql(MariaDB)主从复制
  6. 如何配置能使j2me开发环境处于正常状态
  7. MyEclipse扩展功能设置(Eclipse代码提示功能)
  8. MySQL 跨库分页/ 分表分页/ 跨库分页,为什么这么难?
  9. 微博基于Flink的机器学习实践
  10. 中台辨析:架构的演进趋势