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日

相关文章

  • Lua学习笔记之数据结构

    下面开始对”Lua学习笔记之数据结构”的完整攻略进行详细说明。 一、前言 在学习Lua时,数据结构是非常重要的一个方面,掌握了数据结构,就可以更好地编写Lua程序,提高程序的性能和可读性。本篇攻略主要介绍四种Lua数据结构:数组、表、字符串和函数,分别介绍其含义、特点、创建方法以及基本操作。 二、数组 2.1 数组的定义和创建 Lua中的数组是一种类似于C语…

    数据结构 2023年5月17日
    00
  • C语言数据结构深入探索顺序表

    C语言数据结构深入探索顺序表攻略 一、概述 顺序表是一种线性结构,是计算机程序中最常见的数据结构之一。在C语言中,顺序表可以用数组来实现。本篇文章将深入讲解顺序表的原理和实现方法,帮助读者加深对顺序表的理解,并掌握如何用C语言代码实现顺序表。 二、顺序表的定义和特点 顺序表是指用一组地址连续的存储单元依次存储线性表中的各个元素,用于表示具有相同数据类型的n个…

    数据结构 2023年5月17日
    00
  • JavaScript 数据结构之散列表的创建(2)

    下面是详细讲解“JavaScript 数据结构之散列表的创建(2)”的完整攻略。 散列表(哈希表) 散列表是一种数据结构,使用哈希函数将键映射到索引。散列表可以在常量时间 O(1) 中进行插入、删除和查找操作,但也具有碰撞冲突问题。 碰撞冲突问题 在散列表中,当两个不同的键通过哈希函数映射到了同一个索引位置时,就会发生碰撞冲突问题。解决碰撞冲突问题的方法有很…

    数据结构 2023年5月17日
    00
  • C语言线性表顺序存储结构实例详解

    C语言线性表顺序存储结构实例详解 线性表的定义 线性表是数据结构中最基本的结构之一。它们是由相同数据类型的一组数据元素组成的序列。线性表具有唯一的首元素和唯一的末元素,除第一个元素之外的每个元素都有唯一的前继,除最后一个元素之外的每个元素都有唯一的后继。 线性表的存储方式 线性表有两种存储方式: 顺序存储和链式存储。 顺序存储采用一段连续的内存空间来存储线性…

    数据结构 2023年5月17日
    00
  • python学习数据结构实例代码

    “Python学习数据结构实例代码”的完整攻略如下: 1. 学习前提 在学习Python数据结构之前,需要具备一定的Python基础知识,包括语法、数据类型、操作符、控制流等基础知识。 2. 学习步骤 2.1 选择学习资料 可以选择阅读相关书籍或者参加在线课程来学习Python数据结构。推荐一些经典的学习资料: 《Python基础教程》第二版(作者:Magn…

    数据结构 2023年5月17日
    00
  • Java深入了解数据结构之优先级队列(堆)

    Java深入了解数据结构之优先级队列(堆) 本文将会详细介绍Java中的优先级队列,即堆数据结构的实现过程和使用方法。 什么是优先级队列? 在介绍优先级队列之前,我们需要了解先进先出队列(FIFO Queue)和后进先出队列(LIFO Queue,或称栈)的概念。FIFO Queue按照元素的插入顺序依次出队;而LIFO Queue则按照元素的插入顺序反向出…

    数据结构 2023年5月17日
    00
  • PHP常用算法和数据结构示例(必看篇)

    PHP常用算法和数据结构示例(必看篇)攻略 在这篇文章中,我们将会学习一些PHP常用的算法和数据结构,并通过一些示例来说明它们的应用场景和使用方法。 1. 哈希表 哈希表是一种常用的数据结构,它根据关键码值(Key Value)而直接进行访问的数据结构。哈希表通常用于实现关联数组。PHP中提供了内置的哈希表数据结构Map和Array。 1.1 使用Map实现…

    数据结构 2023年5月17日
    00
  • C语言数据结构之堆排序的优化算法

    C语言数据结构之堆排序的优化算法攻略 堆排序简介 堆排序(HeapSort)是一种树形选择排序,在排序过程中始终保持一个最大堆,每次将堆顶元素与最后一个元素交换位置,并进行一次最大堆调整操作,直到整个序列有序为止。 堆排序的时间复杂度为O(nlogn),具有不需额外存储空间的特点,因此广泛应用于内存受限的场景。 堆排序的优化算法 1. 建堆操作的优化 将序列…

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