首页 课程 师资 教程 报名

Java单链表的实现

  • 2022-10-24 10:03:01
  • 1071次 动力节点

在这篇文章中,我们将看到如何在 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 }

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交