📜  用于在链表中插入节点的Java程序(1)

📅  最后修改于: 2023-12-03 14:56:20.226000             🧑  作者: Mango

用于在链表中插入节点的Java程序
简介

本程序为Java编写的链表操作程序,旨在向链表中插入新节点。链表是一种常见的数据结构,由一系列节点组成,每个节点包含一个数据项(称为有效负载)和指向下一个节点的引用。插入节点可以在链表的任何位置进行,它涉及修改节点之间的引用以及创建新的节点。

实现代码

以下是一个简单的Java示例代码片段,用于在链表中插入新节点:

class Node {
    int data;
    Node next;
    
    public Node(int data) {
        this.data = data;
        this.next = null;
    }
}

class LinkedList {
    Node head;
    
    // 在链表的头部插入新节点
    public void insertAtBeginning(int data) {
        Node newNode = new Node(data);
        newNode.next = head;
        head = newNode;
    }
    
    // 在链表的末尾插入新节点
    public void insertAtEnd(int data) {
        Node newNode = new Node(data);
        
        if (head == null) {
            head = newNode;
            return;
        }
        
        Node temp = head;
        while (temp.next != null) {
            temp = temp.next;
        }
        
        temp.next = newNode;
    }
    
    // 在链表的指定位置插入新节点
    public void insertAtPosition(int data, int position) {
        Node newNode = new Node(data);
        
        if (position == 0) {
            newNode.next = head;
            head = newNode;
            return;
        }
        
        Node temp = head;
        for (int i = 0; i < position - 1; i++) {
            if (temp == null) {
                System.out.println("Invalid position!");
                return;
            }
            temp = temp.next;
        }
        
        newNode.next = temp.next;
        temp.next = newNode;
    }
    
    // 打印链表中的所有节点
    public void display() {
        System.out.println("Linked List:");
        Node temp = head;
        
        while (temp != null) {
            System.out.print(temp.data + " -> ");
            temp = temp.next;
        }
        
        System.out.println("null");
    }
}

public class Main {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        
        // 插入节点示例
        list.insertAtEnd(1);
        list.insertAtBeginning(2);
        list.insertAtEnd(3);
        list.insertAtPosition(4, 2);
        
        // 打印链表
        list.display();
    }
}
代码说明

上述代码包含三个类:NodeLinkedListMain

  • Node类表示链表中的一个节点,包含数据和下一个节点的引用。
  • LinkedList类表示链表本身,包含对链表进行插入操作的方法,以及打印链表的方法。
  • Main类为示例的入口点,创建一个链表对象,并进行节点插入操作,并最后打印整个链表。

代码中定义了三个插入方法:

  • insertAtBeginning方法在链表的头部插入一个新节点。
  • insertAtEnd方法在链表的末尾插入一个新节点。
  • insertAtPosition方法在链表的指定位置插入一个新节点。

最后,通过调用链表对象的display方法,可以打印链表中的所有节点。

运行结果

运行上述示例代码之后,将会得到如下输出结果:

Linked List:
2 -> 1 -> 4 -> 3 -> null

这表示链表中的节点按正确的顺序插入,并成功地打印了整个链表。

以上就是一个用于在链表中插入节点的Java程序的介绍。希望对你有所帮助!