📜  java中的单链表(1)

📅  最后修改于: 2023-12-03 15:16:31.482000             🧑  作者: Mango

Java中的单链表

单链表是一种常用的数据结构,在Java中也有很好的实现。本文将介绍Java中单链表的概念、基本操作和实现代码。

概念

单链表是一种线性数据结构,其基本结构由节点组成,每个节点包括数据和指向下一个节点的指针。单链表的头节点存储了链表的第一个元素,尾节点指向NULL。

基本操作

单链表支持的基本操作包括插入元素、删除元素和遍历链表等。

插入元素

插入元素可以在链表中任意位置插入一个新节点,在Java中可以使用如下代码实现:

public void insertNode(int data,int position){
    Node node = new Node(data);
    if(position == 1){
        node.next = head;
        head = node;
        return;
    }
    Node prevNode = head;
    for(int i=1;i<position-1;i++){
        prevNode = prevNode.next;
    }
    node.next = prevNode.next;
    prevNode.next = node;
}
删除元素

删除元素可以在链表中任意位置删除一个节点,在Java中可以使用如下代码实现:

public void deleteNode(int position){
    if(position == 1){
        head = head.next;
        return;
    }
    Node prevNode = head;
    for(int i=1;i<position-1;i++){
        prevNode = prevNode.next;
    }
    Node curNode = prevNode.next;
    prevNode.next = curNode.next;
}
遍历链表

遍历链表可以输出链表中每个节点的数据,在Java中可以使用如下代码实现:

public void traverse(){
    Node curNode = head;
    if(head == null){
        System.out.println("LinkedList is empty!");
        return;
    }
    while(curNode != null){
        System.out.print(curNode.data + " ");
        curNode = curNode.next;
    }
    System.out.println();
}
实现代码

在Java中,单链表的实现代码如下:

public class LinkedList{
    private class Node{
        int data;
        Node next;

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

    private Node head;

    public LinkedList(){
        head = null;
    }

    public void insertNode(int data,int position){
        Node node = new Node(data);
        if(position == 1){
            node.next = head;
            head = node;
            return;
        }
        Node prevNode = head;
        for(int i=1;i<position-1;i++){
            prevNode = prevNode.next;
        }
        node.next = prevNode.next;
        prevNode.next = node;
    }

    public void deleteNode(int position){
        if(position == 1){
            head = head.next;
            return;
        }
        Node prevNode = head;
        for(int i=1;i<position-1;i++){
            prevNode = prevNode.next;
        }
        Node curNode = prevNode.next;
        prevNode.next = curNode.next;
    }

    public void traverse(){
        Node curNode = head;
        if(head == null){
            System.out.println("LinkedList is empty!");
            return;
        }
        while(curNode != null){
            System.out.print(curNode.data + " ");
            curNode = curNode.next;
        }
        System.out.println();
    }
}
结语

本文介绍了Java中单链表的概念、基本操作和实现代码。单链表是一种常用的数据结构,掌握其基本操作对于提升编程能力很有帮助。