iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java数据结构中单链表与双向链表的实现方法
  • 145
分享到

java数据结构中单链表与双向链表的实现方法

2023-06-20 19:06:27 145人浏览 八月长安
摘要

这篇文章主要介绍“java数据结构中单链表与双向链表的实现方法”,在日常操作中,相信很多人在java数据结构中单链表与双向链表的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java数据结构中单链表与

这篇文章主要介绍“java数据结构中单链表与双向链表的实现方法”,在日常操作中,相信很多人在java数据结构中单链表与双向链表的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java数据结构中单链表与双向链表的实现方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • 单链表:

    • 实现思路

    • 代码实现

  • 双向链表:

    • 实现思路

    • 代码实现

单链表

每个数据是以节点的形式存在的

每个节点分为数据域和指针域

数据域中保存该节点的数据

指针域中保存指向下一个节点的指针

实现思路

节点类Singlenode中保存数据和指向下一个节点的指针

单链表类SingleLinkedList中保存链表的头节点,实现相关链表方法

对于链表方法,涉及到位置查找,如在指定位置增加、删除节点,需要使用一个临时变量temp从头节点开始遍历,直至找到对应的位置。

对于节点的增加删除,只需要修改相关结点的指针指向即可

代码实现

节点类SingleNode:

public class SingleNode {public int data;public SingleNode next;public SingleNode(int data) {this.data = data;}@Overridepublic String toString() {return "SingleNode{" + "data=" + data + '}';}}

单链表类SingleLinkedList

public class SingleLinkedList {private SingleNode head = new SingleNode(0);    //获取头结点public SingleNode getHead(){return head;}//添加节点public void add(SingleNode singleNode) {SingleNode temp = head;//找到链表最后一个节点while (temp.next != null) {temp = temp.next;}temp.next = singleNode;}//按顺序添加节点public void addByOrder(SingleNode singleNode) {SingleNode temp = head;while (true) {if (temp.next == null) {//已经遍历到链表最后了break;} else if (temp.next.data > singleNode.data) {//找到应插入的位置break;}temp = temp.next;}singleNode.next = temp.next;temp.next = singleNode;}//删除节点public void delete(int data) {SingleNode temp = head;boolean flag = false;    //标志是否找到待删除节点的前一个节点while (true) {if (temp.next == null) {//已经遍历到链表最后了break;} else if (temp.next.data == data) {//找到待删除节点的前一个节点flag = true;break;}temp = temp.next;}if (flag) {temp.next = temp.next.next;} else {System.out.println("要删除的节点不存在");}}//输出链表public void show() {//判断链表是否为空if (head.next == null) {System.out.println("链表为空");return;}SingleNode temp = head.next;while (temp != null) {System.out.println(temp);temp = temp.next;}}}

双向链表

每个节点中除了保存了指向后一个节点的指针外,还保存了指向前一个节点的指针

实现思路

相关方法实现与单链表类似,不同点在于需要增加对指向前一个节点的指针的更改

代码实现

节点类DoubleNode

public class DoubleNode {public int data;public DoubleNode next;public DoubleNode pre;public DoubleNode(int data) {this.data = data;}@Overridepublic String toString() {return "DoubleNode{" + "data=" + data + '}';}}

双向链表类DoubleLinkedList

public class DoubleLinkedList {public DoubleNode head = new DoubleNode(0);//获取头结点public DoubleNode getHead() {return head;}//添加节点public void add(DoubleNode doubleNode) {DoubleNode temp = head;//找到链表最后一个节点while (temp.next != null) {temp = temp.next;}temp.next = doubleNode;doubleNode.pre = temp;}//删除节点public void delete(int data) {DoubleNode temp = head.next;boolean flag = false;    //标志是否找到待删除节点的前一个节点while (true) {if (temp == null) {//已经遍历到链表最后了break;} else if (temp.data == data) {//找到待删除节点flag = true;break;}temp = temp.next;}if (flag) {temp.pre.next = temp.next;if (temp.next != null) {//若删除节点不为最后一个节点temp.next.pre = temp.pre;}} else {System.out.println("要删除的节点不存在");}}//输出链表public void show() {//判断链表是否为空if (head.next == null) {System.out.println("链表为空");return;}DoubleNode temp = head.next;while (temp != null) {System.out.println(temp);temp = temp.next;}}}

到此,关于“java数据结构中单链表与双向链表的实现方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: java数据结构中单链表与双向链表的实现方法

本文链接: https://www.lsjlt.com/news/299294.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java数据结构中单链表与双向链表的实现方法
    这篇文章主要介绍“java数据结构中单链表与双向链表的实现方法”,在日常操作中,相信很多人在java数据结构中单链表与双向链表的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java数据结构中单链表与...
    99+
    2023-06-20
  • java数据结构基础:单链表与双向链表
    目录单链表:实现思路:代码实现:双向链表:实现思路:代码实现:总结单链表: 每个数据是以节点的形式存在的 每个节点分为数据域和指针域 数据域中保存该节点的数据 指针域中保存指向下一个...
    99+
    2022-11-12
  • Java数据结构之链表实现(单向、双向链表及链表反转)
    前言 之前学习的顺序表查询非常快,时间复杂度为O(1),但是增删改效率非常低,因为每一次增删改都会元素的移动。可以使用另一种存储方式-链式存储结构。 链表是一种物理存储单元上非连续、...
    99+
    2022-11-12
  • java数据结构中单向链表和双向链表的介绍
    这篇文章主要讲解了“java数据结构中单向链表和双向链表的介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java数据结构中单向链表和双向链表的介绍”吧!目录单向链表单链表图解代码双向链表...
    99+
    2023-06-20
  • java数据结构基础:单,双向链表
    目录单向链表单链表图解代码双向链表编码总结单向链表 单向链表比顺序结构的线性表最大的好处就是不用保证存放的位置,它只需要用指针去指向下一个元素就能搞定。 单链表图解 图画的比较粗糙...
    99+
    2022-11-12
  • Java数据结构之双向链表的实现
    目录1 双向链表1.1 双向链表介绍1.2 双向链表实现思路2 双向链表实现完整代码2.1 节点类 Student.java2.2 双向链表实现类 StudentDoubleLink...
    99+
    2022-11-13
    Java 数据结构 双向链表 Java 双向链表
  • java数据结构实现双向链表功能
    双向链表实现 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继...
    99+
    2022-11-12
  • Java数据结构与算法学习之双向链表
    目录双向链表的储存结构示意图双向链表的初始化结构1.双向链表的结点2.双向链表的头结点3.总代码双向链表中的指定文件插入元素 1.插入的为第一个位置2.其他位置插入总代码双向链表的删...
    99+
    2022-11-12
  • Java数据结构之双向链表如何实现
    这篇文章主要讲解了“Java数据结构之双向链表如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java数据结构之双向链表如何实现”吧!双向链表(Doubly linked list)什...
    99+
    2023-06-30
  • Node.js环境下JavaScript实现单链表与双链表结构
    单链表(LinkedList)的javascript实现 npmjs相关库: complex-list、smart-list、singly-linked-list 编程思路: add方法用于将元素追加...
    99+
    2022-06-04
    链表 结构 环境
  • Java数据结构之双端链表原理与实现方法
    本文实例讲述了Java数据结构之双端链表原理与实现方法。分享给大家供大家参考,具体如下:一、概述:什么时双端链表:链表中保持这对最后一个连点引用的链表从头部插入要对链表进行判断,如果为空则设置尾节点为新添加的节点从尾部进行插入如果链表为空,...
    99+
    2023-05-30
    java 数据结构 双端链表
  • Java数据结构之双向链表图解
    双向链表(Doubly linked list) 什么是双向链表? 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的...
    99+
    2022-11-13
  • 【一起学数据结构与算法】Java实现双链表
    目录 一、双链表的概念二、双链表一些方法的实现2.1 双链表的属性2.2 打印双链表2.3 得到双链表的长度2.4 查找是否包含关键字key是否在双链表中2.5 头插法2.6 尾插法2.7 任...
    99+
    2023-09-04
    java 链表 数据结构
  • Java实现链表数据结构的方法
    什么是链表? 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。每一个链表都包含多个节点,节点又包含两个部分,一个是数据域(储存节...
    99+
    2022-11-12
  • C++数据结构之双向链表怎么实现
    这篇“C++数据结构之双向链表怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++数据结构之双向链表怎么实现”文章吧...
    99+
    2023-06-30
  • JavaScript数据结构之双向链表和双向循环链表的示例分析
    这篇文章主要为大家展示了“JavaScript数据结构之双向链表和双向循环链表的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数据结...
    99+
    2022-10-19
  • 【算法基础】数据结构| 单链表+双链表 代码实现+图解+原理
    博主简介:努力学习的预备程序媛一枚~博主主页: @是瑶瑶子啦所属专栏: Java岛冒险记【从小白到大佬之路】 前言 因为瑶瑶子正在备战蓝桥杯和校内ACM选拔赛,最近在学习算法相关的知识。我是借...
    99+
    2023-09-18
    算法 数据结构 java c++ 链表
  • C语言数据结构之单链表与双链表的增删改查操作实现
    目录前言单链表的增删改查定义结构体以及初始化增加结点删除结点查找修改结点移除结点最终效果双链表的基本操作初始化建表遍历双链表指定位置插入结点指定位置删除结点查找结点位置最终效果结语前...
    99+
    2022-11-13
  • Java 数据结构与算法系列精讲之单向链表
    目录概述链表单向链表单向链表实现Node 类add 方法remove 方法get 方法set 方法contain 方法main完整代码概述 从今天开始, 小白我将带大家开启 Jave...
    99+
    2022-11-13
  • java模拟实现双向链表的方法
    这篇文章主要介绍“java模拟实现双向链表的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java模拟实现双向链表的方法”文章能帮助大家解决问题。双向链表也叫双链表,是链表的一种,它的每个数据结...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作