专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java单链表的实现

Java单链表的实现

更新时间:2022-10-24 10:03:01 来源:星辉 浏览1062次

在这篇文章中,我们将看到如何在 java 中实现单链表。

它是最常用的数据结构之一。在单链表中,Node 有数据和指向下一个节点的指针。它没有指向前一个节点的指针。最后一个节点的 next 指向 null,因此您可以使用此条件迭代链表。

链表的节点可以呈现如下:

class Node {
public int data;
public Node next;
public void displayNodeData() {
  System.out.println("{ " + data + " } ");
}
}

链表示例:

让我们在java中实现链表。

创建一个名为SingleLinkedList.java的 java 文件。

package org.arpit.java2blog;
class Node {
    public int data;
    public Node next; 
    public void displayNodeData() {
        System.out.println("{ " + data + " } ");
    }
} 
public class SinglyLinkedList {
    private Node head; 
    public boolean isEmpty() {
        return (head == null);
    } 
    // used to insert a node at the start of linked list
    public void insertFirst(int data) {
        Node newNode = new Node();
        newNode.data = data;
        newNode.next = head;
        head = newNode;
    } 
    // used to delete node from start of linked list
    public Node deleteFirst() {
        Node temp = head;
        head = head.next;
        return temp;
    } 
    // Use to delete node after particular node
    public void deleteAfter(Node after) {
        Node temp = head;
        while (temp.next != null && temp.data != after.data) {
            temp = temp.next;
        }
        if (temp.next != null)
            temp.next = temp.next.next;
    } 
    // used to insert a node at the start of linked list
    public void insertLast(int data) {
        Node current = head;
        while (current.next != null) {
            current = current.next; // we'll loop until current.next is null
        }
        Node newNode = new Node();
        newNode.data = data;
        current.next = newNode;
    } 
    // For printing Linked List
    public void printLinkedList() {
        System.out.println("Printing LinkedList (head --> last) ");
        Node current = head;
        while (current != null) {
            current.displayNodeData();
            current = current.next;
        }
        System.out.println();
    }
} 

让我们创建名为 LinkedListMain.java 的 Main 类来创建 LinkedList。

package org.arpit.java2blog;
public class LinkedListMain { 
    public static void main(String args[])
    {
        SinglyLinkedList myLinkedlist = new SinglyLinkedList();
        myLinkedlist.insertFirst(5);
        myLinkedlist.insertFirst(6);
        myLinkedlist.insertFirst(7);
        myLinkedlist.insertFirst(1);
        myLinkedlist.insertLast(2);
        // Linked list will be
        // 2 -> 1 ->  7 -> 6 -> 5
        Node node=new Node();
        node.data=1;
        myLinkedlist.deleteAfter(node);
        // After deleting node after 1,Linked list will be
        // 2 -> 1 -> 6 -> 5
        myLinkedlist.printLinkedList();
    }
}

当你运行上面的程序时,你会得到下面的输出:

Printing LinkedList (head --> last)
{ 1 }
{ 6 }
{ 5 }
{ 2 }

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>