当前位置: 首页 > article >正文

数据结构之线性表之链表(附加一个考研题)

链表的定义

链表的结构:

单链表-初始化

代码实现:

单链表-头插法

代码实现:

这里我给大家分析一下

我们每创建一个新的节点都要插在头节点的后面,我们一定要注意顺序

一定要先让新节点指向头节点指向的下一个节点,再让头节点指向新的节点

单链表-遍历

代码实现:

代码分析:

这里我定义了一个指针p,p指向第一个节点的地址,判断p是否为空指针,不为空指针,打印这个节点的数据,并让p指向下一个节点,依次类推,直到指向的下一个节点为空指针

单链表-尾插法

代码实现:

单链表-在指定位置插入

代码实现:

单链表-根据数据或学号什么的删除一个节点

代码实现:

单链表-获取链表的长度

代码实现:

我们来看一下结果吧

代码展示:

单链表-释放节点

代码实现:

代码展示:

我们来做一道题

我们利用双指针的思想来解决这道题,这是一个套路,大家记住就可以了

分析:

我们会有两个指针,一个快指针,一个慢指针,我们要倒数第几个,就让快指针走几步,然后在快指针和慢指针一块走,当快指针指向NULL的时候,慢指针正好指向了我们要找的那个节点,然后我们打印这个节点的数据值就可以了

代码实现:

代码结果:

循环链表:

就一个不一样的点是尾节点指向的是头节点,一般的尾节点指向的是NULL

接下来我们直接进入双向链表吧

双向链表无非就是多了一个前驱,其他都一样

双向链表的定义:

双向链表的结构:

双向链表-头插法

代码实现:

结果:

遍历的代码跟原来一样

双向链表-尾插法

代码实现:

结果:

双向链表-根据数据删除节点

代码实现:

双向链表的遍历和释放跟单链表是一样的

到这里链表就结束了,后面就是刷题在巩固巩固就可以了


http://www.kler.cn/a/459645.html

相关文章:

  • 国产编辑器EverEdit - 常用资源汇总
  • 2024年12月 Scratch 图形化(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 《计算机网络》(B)复习
  • Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析
  • ESP32_H2-ESP32_H2(IDF)学习系列-安装官方组件
  • 1Panel自建RustDesk服务器方案实现Windows远程macOS
  • docker学习记录-部署若依springcloud项目
  • 4.3 数据库HAVING语句
  • 精品方案推介:649页智慧水务大数据云平台解决方案
  • 【JMeter详解】
  • 32单片机从入门到精通之硬件架构——内核与外设(一)
  • 014-spring-aop的原理
  • Android 转场动画合集
  • WebSocket 的封装使用
  • E卷-恢复数字序列(100分)
  • C语言程序设计:程序设计和C语言
  • 如何判断一个学术论文是否具有真正的科研价值?ChatGPT如何提供帮助?
  • 抽象工厂模式详解
  • 初识 Conda:一站式包管理和环境管理工具
  • Unity3D 基于GraphView实现的节点编辑器框架详解
  • es6 字符串每隔几个中间插入一个逗号
  • 【Cursor编辑器】自用经验和实操(迭代更新)
  • 【MySQL】搞懂mvcc、read view:MySQL事务原理深度剖析
  • Springboot配置文件加载顺序(含Nacos配置)
  • 自动驾驶第一股的转型迷途:图森未来赌上了AIGC
  • 论文阅读《Cross-scale multi-instance learning for pathological image diagnosis》