java实现数据结构单链表示例(java单链表)

下面是 Java 实现数据结构单链表的完整攻略。

简介

单链表是数据结构中的一种,用于存储一组有序的元素。单链表中,每个元素都由一个结点表示,结点中包含了一个指向下一个结点的指针。单链表的结构更加灵活,支持插入、删除等操作。

实现步骤

1. 定义节点类ListNode

单链表的每一个节点包含两个属性,分别是节点值 val 和指向下一个节点的指针 next,所以我们定义一个名为 ListNode 的类,包含这两个属性。

public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}

2. 定义单链表类Solution

定义一个名为 Solution 的单链表类,它具有一下功能:(1)增加一个空节点 head 充当链表的头部;(2)添加新节点;(3)删除节点;(4)查询节点。

public class Solution {
    ListNode head;

    // 添加节点
    public void addNode(int val) {
        ListNode node = new ListNode(val);
        if (head == null) {
            head = node;
            return;
        }
        ListNode temp = head;
        while (temp.next != null) {
            temp = temp.next;
        }
        temp.next = node;
    }

    // 删除节点
    public void deleteNode(int val) {
        ListNode temp = head;
        if (temp == null) {
            return;
        }
        if (temp.val == val) {
            head = temp.next;
            return;
        }
        while (temp.next != null) {
            if (temp.next.val == val) {
                temp.next = temp.next.next;
                return;
            }
            temp = temp.next;
        }
    }

    // 查询节点
    public boolean searchNode(int val) {
        ListNode temp = head;
        while (temp != null) {
            if (temp.val == val) {
                return true;
            }
            temp = temp.next;
        }
        return false;
    }
}

在上面的代码中,我们定义了一个 head 节点作为单链表的头部,接下来,我们实现了 addNodedeleteNodesearchNode 三个函数,分别用于添加新节点、删除节点和查询节点。

addNode 函数中,我们首先判断 head 是否为空,如果为空,则将新节点作为 head 的值。否则,我们遍历整个列表,直到最后一个节点为止,然后在最后一个节点的指针上挂上新节点。在 deleteNode 函数中,我们首先遍历整个列表,查找待删除的节点。如果待删除的节点为 head 节点,我们将 head 指针指向待删除节点的下一个节点。否则,我们遍历整个列表,查找待删除节点的前一个节点,然后将待删除节点的前一个节点的指针指向待删除节点的下一个节点。在 searchNode 函数中,我们遍历整个列表,查找是否有与给定值相等的节点。

3. 示例说明

示例一

Solution sln = new Solution();
sln.addNode(1);
sln.addNode(2);
sln.addNode(3);
sln.deleteNode(2);
System.out.println(sln.searchNode(2)); // 输出 false

在这个示例中,我们先实例化了一个单链表 sln,然后添加了三个节点,分别是 1、2 和 3。接下来,我们删除节点 2,再查询节点 2,结果应该是 false

示例二

Solution sln = new Solution();
sln.addNode(1);
sln.addNode(2);
sln.addNode(3);
System.out.println(sln.searchNode(2)); // 输出 true

在这个示例中,我们先实例化了一个单链表 sln,然后添加了三个节点,分别是 1、2 和 3。接下来,我们查询节点 2,结果应该是 true

总结

至此,我们完成了 Java 实现数据结构单链表的攻略。单链表是数据结构中的一种,可以进行插入、删除等灵活的操作,因此非常实用。这个攻略提供了如何用 Java 实现单链表的具体步骤,帮助开发人员快速掌握单链表的使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现数据结构单链表示例(java单链表) - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • js处理层级数据结构的方法小结

    “JS处理层级数据结构的方法小结”是一篇讲解JavaScript如何处理嵌套数据结构的文章。在现代的web应用中,嵌套结构是非常常见的,比如JSON数据、树形数据等。以下是对该话题的详细讲解: 1. 嵌套数据结构的概念 指的是包含嵌套关系的数据类型,如数组、对象、树形结构、XML文档等。这些类型之间有着固定层级关系,包含多个层次的数据。嵌套数据结构的处理,往…

    数据结构 2023年5月17日
    00
  • C语言数据结构实现字符串分割的实例

    C语言中数据结构实现字符串分割可以用到两种常见数据结构:指针和数组。 方法一:指针 步骤一:创建指针 首先声明一个指针类型的变量,用来存储字符串中单个字符所在的地址: char *ptr; 步骤二:遍历字符串 通过对字符串进行遍历,在每个分隔符位置上获取单词,并通过指针记录下每个单词的地址: char str[] = "C语言-数据结构-字符串分割…

    数据结构 2023年5月17日
    00
  • Java数据结构及算法实例:插入排序 Insertion Sort

    Java数据结构及算法实例:插入排序 Insertion Sort 算法简介 插入排序是一种简单的排序算法,它的工作方式是每次将一个待排序的元素与前面已经排好序的元素逐个比较,并插入到合适的位置。插入排序的时间复杂度为O(n^2),是一种比较低效的排序算法。 算法实现 以下是使用Java语言实现插入排序算法的代码: public static void in…

    数据结构 2023年5月17日
    00
  • 稀疏数组

    引入 当在网页上下棋类游戏时,玩到中途想要离开,但是我们需要保存进度,方便下次继续 我们应该怎么实现 ? 以围棋举例 使用二维数组将棋盘记下 ,如 0 为 没有棋子 ,1 为 黑子 , 2为白子 但是没有棋子的地方都为 0 ,整个二维数组充斥着大量的无效数据 0 我们需要想一个办法来 优化存储的方式 基本介绍 当一个数组中大部分元素是同一个值时,我们可以使用…

    算法与数据结构 2023年4月25日
    00
  • 带你了解Java数据结构和算法之高级排序

    带你了解Java数据结构和算法之高级排序攻略 什么是高级排序算法? 在计算机科学中,排序算法是将一串数据按照特定顺序进行排列的一种算法。根据数据规模、数据类型、稳定性、时间复杂度以及空间复杂度等因素,排序算法分为许多种类。高级排序算法是相对于普通排序算法而言,其时间复杂度更低、排序速度更快、稳定性更高的算法。 高级排序算法的分类及特点 高级排序算法分为内排序…

    数据结构 2023年5月17日
    00
  • 一些常见的字符串匹配算法

    作者:京东零售 李文涛 一、简介 1.1 Background 字符串匹配在文本处理的广泛领域中是一个非常重要的主题。字符串匹配包括在文本中找到一个,或者更一般地说,所有字符串(通常来讲称其为模式)的出现。该模式表示为p=p[0..m-1];它的长度等于m。文本表示为t=t[0..n-1],它的长度等于n。两个字符串都建立在一个有限的字符集上。 一个比较常见…

    算法与数据结构 2023年4月25日
    00
  • C语言实现通用数据结构之通用链表

    C语言是一门广泛应用于低级别系统编程的语言,也是数据结构和算法学习的重要工具之一,而在C语言中实现通用数据结构的方法之一就是通用链表。 通用链表是一种使用节点来组织数据的通用数据结构,每个节点包含一定量的数据以及指向链表中下一个节点的指针,因此,它可以用来实现许多不同的数据结构,例如栈、队列、树、图、哈希表等等。 具体实现通用链表的方法如下: 步骤一:定义节…

    数据结构 2023年5月17日
    00
  • Mysql Innodb存储引擎之索引与算法

    Mysql Innodb存储引擎之索引与算法 MySQL是一款非常受欢迎的关系型数据库,有许多的存储引擎可供选择,其中InnoDB是目前最受欢迎的存储引擎之一。索引是InnoDB存储引擎的一个重要特性,它可以大大提高数据库查询的效率。本文将详细讲解InnoDB存储引擎的索引与算法。 索引 索引是一种数据结构,它将表中的列与对应的行位置组成键值对,以便快速查找…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部