简体   繁体   中英

How to insert strings into a linked list in java

I am writing a program to add String type data to a circular doubly linked list and to view them in java. I want to know that how to add Strings to the linked list and how to get the output.

The way I tried gives an error: " The constructor Node() is undefined " How to fix this.

here is the code I tried:

class Node {
    int data;
    Node nextNode;
    Node prevNode;
}

class CircularDoublyLL {
    Node head = null;
    Node tail = null;

    public void insertLast(String songName) {
        Node newNode = new Node();
        newNode.data = songName;

        if (head == null) {
            head = tail = newNode;
            head.nextNode = head;
            head.prevNode = head;
        } else {
            tail.nextNode = newNode;
            newNode.prevNode = tail;
            newNode.nextNode = head;
            head.prevNode = newNode;
            tail = newNode;
        }
    }

    public void displayPlayist() {
        Node currentNode = head;
        if (head == null) {
            System.out.println("Playlist is empty!");
        } else {
            int songNo = 1;
            while (currentNode != tail) {
                System.out.println("Song " + songNo + ": " + currentNode.data);
                currentNode = currentNode.nextNode;
                songNo++;
            }
            System.out.println("Song " + songNo + ": " + currentNode.data);
        }
    }
}

public class MusicPlayer {
    public static void main(String[] args) {
        CircularDoublyLL playlist = new CircularDoublyLL();

        playlist.insertLast("Song Name 1");
        playlist.insertLast("Song Name 2");
        playlist.insertLast("Song Name 3");
        playlist.insertLast("Song Name 4");
        playlist.displayPlayist();
    }
}

For Strings change:

class Node {
    int data;
    Node nextNode;
    Node prevNode;
}

To

class Node {
    String data;
    Node nextNode;
    Node prevNode;
}

or

class Node {
    Object data;
    Node nextNode;
    Node prevNode;
}

(Object will allow any data type)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM