前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数据结构】双链表

【数据结构】双链表

作者头像
小王不头秃
发布2024-06-19 15:24:47
1530
发布2024-06-19 15:24:47
举报

双链表的增,删,遍历

生成一个节点

这边给出两个方法生成一个节点

第一种方法

生成一个新节点,然后将该节点指针返回,这种方式比较简单,不需要涉及到函数传参的问题

第二种方法

即将Node指针的地址传递过来,注意传递的Node指针的地址,不是Node节点的地址,这种方式采用的是二重指针,为什么要采用二重指针,请参考二重指针

个人建议使用第一种方式,对我这种基础薄弱的,指针已经很难理解了,又加了双重指针,有点要命了

遍历

遍历没什么好说的,一直遍历节点next,直到为空停止

该函数传递的是头指针的next,然后进行遍历,不存在空指针的错误

增加

添加一个节点涉及到四次赋值,分别是将p的next赋给n的next,将p的next的prior赋值为n,这一步可能出现空指针异常,p的next赋值为n,n的prior赋值为p

可能出现空指针异常的地方在p->next->prior这里,即被添加节点的原来的后置节点,因为后置节点可能为空,即被添加的节点是最后一个节点

删除

删除过程就是将删除节点的prior的next修改为删除结点的next,将删除节点的next的prior修改为删除节点的prior

这里不进行头节点的删除,已知除了头结点之外其他节点的prior都不为空,不存在空指针问题

可能出现的空指针异常的是p->next->prior,即被删除的节点可能是最后一个节点,这时删除该节点只需修改前置节点的next即可。别忘记释放资源

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 双链表的增,删,遍历
    • 生成一个节点
      • 第一种方法
      • 第二种方法
    • 遍历
      • 增加
        • 删除
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档