Java的链表类

Java链表是LinkedList,它是一个双向链表,实现了List接口和Deque接口,提供了插入、删除、遍历等操作。

Java的链表是一种线性数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针,链表可以分为单向链表、双向链表和循环链表等型。

1、单向链表

Java的链表类

单向链表是最简单的链表类型,每个节点只有一个指向下一个节点的指针,下面是一个简单的单向链表实现:

class Node {
    int data;
    Node next;
    public Node(int data) {
        this.data = data;
        this.next = null;
    }
}
class LinkedList {
    Node head;
    public void add(int data) {
        Node newNode = new Node(data);
        if (head == null) {
            head = newNode;
        } else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }
    public void display() {
        Node current = head;
        while (current != null) {
            System.out.print(current.data + " > ");
            current = current.next;
        }
        System.out.println("null");
    }
}

2、双向链表

Java的链表类

双向链表与单向链表类似,但每个节点有两个指针,一个指向前一个节点,一个指向后一个节点,下面是一个简单的双向链表实现:

class DoublyNode {
    int data;
    DoublyNode prev;
    DoublyNode next;
    public DoublyNode(int data) {
        this.data = data;
        this.prev = null;
        this.next = null;
    }
}
class DoublyLinkedList {
    DoublyNode head;
    DoublyNode tail;
    public void add(int data) {
        DoublyNode newNode = new DoublyNode(data);
        if (head == null) {
            head = newNode;
            tail = newNode;
        } else {
            tail.next = newNode;
            newNode.prev = tail;
            tail = newNode;
        }
    }
    public void display() {
        DoublyNode current = head;
        while (current != null) {
            System.out.print(current.data + " <> ");
            current = current.next;
        }
        System.out.println("null");
    }
}

3、循环链表

Java的链表类

循环链表是一种特殊的链表,它的最后一个节点的指针指向第一个节点,形成一个环,下面是一个简单的循环链表实现:

class CircularDoublyNode {
    int data;
    CircularDoublyNode prev;
    CircularDoublyNode next;
    public CircularDoublyNode(int data) {
        this.data = data;
        this.prev = null;
        this.next = null;
    }
}
class CircularDoublyLinkedList {
    CircularDoublyNode head;
    CircularDoublyNode tail;
    public void add(int data) {
        CircularDoublyNode newNode = new CircularDoublyNode(data);
        if (head == null) {
            head = newNode;
            tail = newNode;
            head.next = head; // 形成环的指针指向自己(头结点)和尾结点(头结点)的指针都指向头结点(尾结点)形成环状结构。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/641852.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-21 12:46
下一篇 2024-05-21 12:48

相关推荐

  • 如何实现Java文件下载功能?

    在Java中,可以使用java.net.URL和java.nio.file包来下载文件。首先创建一个URL对象指向要下载的文件,然后使用URLConnection打开连接,读取数据并写入到本地文件中。记得处理异常和关闭资源。

    2024-11-26
    012
  • 如何用Java上传MySQL数据库连接驱动并实现数据库连接?

    要连接MySQL数据库,首先需要上传MySQL JDBC驱动程序(mysql-connector-java.jar)到项目中。然后使用以下代码建立连接:,,“java,import java.sql.Connection;,import java.sql.DriverManager;,import java.sql.SQLException;,,public class Main {, public static void main(String[] args) {, String url = “jdbc:mysql://localhost:3306/yourDatabase”;, String user = “yourUsername”;, String password = “yourPassword”;,, try {, Class.forName(“com.mysql.cj.jdbc.Driver”);, Connection connection = DriverManager.getConnection(url, user, password);, System.out.println(“Connected to the database successfully!”);, } catch (ClassNotFoundException | SQLException e) {, e.printStackTrace();, }, },},“

    2024-11-25
    08
  • gc代表什么含义?

    gc即气相色谱(gas chromatography,简称gc),是二十世纪五十年代出现的一项重大科学技术成就。

    2024-11-25
    016
  • 如何利用Java实现CDN缓存优化?

    java中的cdn缓存可以通过使用第三方库如spring framework实现,通过配置cdn服务器的地址和相关参数,可以实现对静态资源的加速访问。

    2024-11-22
    07

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入