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

Java中链表的深入了解及实现

一、链表

1.链表的概念

1.1链表是⼀种物理存储结构上⾮连续存储结构,数据元素的逻辑顺序是通过链表中的引⽤链接次序实现的

实际中链表的结构⾮常多样,以下情况组合起来就有8种链表结构:

2.链表的实现

1.⽆头单向⾮循环链表实现

链表中的方法用接口来实现,代码如下:

1.1实现内部类

这处地代码有利于节点的构造和引用

1.2 addFirst方法的逻辑和实现

1.3disPlay方法的实现

注意:循环的结束语不能是cur.next, 如果是cur.next那么一开始add进去的val不会被打印出来

1.4addLast方法的实现

1.5contains方法的实现

这里的cur起到复制head使头节点不变动,不过要注意的是这个循环语不能是cur.next,如果是这个的话,最后的尾节点的val就不会判断出来,查找时会是false,要注意的是:在链表的循环中cur是要重新赋予地址的,这样才能保证在循环的时候不会出现空间报错和访问异常

1.6 size方法的实现

计入链表的大小我们需要定义一个count来计入它的大小,并通过循环来给count++来实现链表的真实大小,不过要注意的是循环语还是之前的那个,这里就不多讲来,最后返回链表的大小

1.7claer方法的实现

这里我们可以直接把头节点置为空就可以达到清除的效果,但是不建议,这里我们需要用到循环,同时在这个循环内部要定义一个新的节点来接收cur.next,这样有助于循环的继续,以防报错

1.8addIndex方法的实现

第二个框起来的方法是检查下标是否合法,这里也可以自定义报错的方法来实现

1.9remove方法的实现

1.10removeAllKey方法的实现

cur = cur.next 起到链表往下循环的作用,prev起到复制当cur.val = key时 next 的地址同时这也会往下进行循环,最后再判断一次头节点

 

相关文章:

  • Linux信号的产生
  • 安卓投屏软件QtScrcpy
  • 基于nlohmann/json 实现 从C++对象转换成JSON数据格式
  • 麒麟V10安装MySQL8.4
  • AT24C02芯片简介:小巧强大的串行EEPROM存储器
  • 音视频学习 - MP3格式
  • 鸿蒙开发:Swiper轮播图
  • 【Rust】基本概念
  • Anaconda3使用conda进行包管理
  • 支持AVX2指令的计算机,ONNX推理量化模型比推理浮点模型慢?
  • 基于javaweb的SSM教材征订与发放管理系统设计与实现(源码+文档+部署讲解)
  • 携程-酒旅-数据研发面经【附答案】
  • go语言中defer使用指南
  • 逻辑思维:从混沌到秩序的理性推演在软件开发中的应用
  • 使用Nacos 打造微服务配置中心
  • Go语言之sync包 WaitGroup的使用和底层实现
  • 文件操作函数
  • 基于cubeMX的hal库STM32实现硬件IIC通信控制OLED屏
  • 汽车VIN码识别:解锁汽车行业的智能密码
  • Spark-SQL 项目
  • 海上生明月,九天揽星河,2025年“中国航天日”主场活动在上海启动
  • 韩国称DeepSeek未经同意将用户数据传至境外,外交部回应
  • 对话地铁读书人|媒体人Echo:读书使人远离“班味”
  • 王励勤当选中国乒乓球协会新一任主席
  • 直播中抢镜“甲亢哥”的翁东华卸任!此前任文和友小龙虾公司董事
  • 周继红当选中国泳协主席,曾为国摘得首枚奥运跳水金牌