es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo insertar cadenas en una lista enlazada en Java.

Estoy escribiendo un programa para agregar datos de tipo String a una lista enlazada circular doble y para verlos en Java.
Quiero saber cómo agregar Strings a la lista enlazada y cómo obtener la salida.

La forma en que intenté hacerlo me muestra el siguiente error: “El constructor Node() no está definido”.
¿Cómo se puede solucionar esto?

Aquí está el código que intenté:

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("¡La lista de reproducción está vacía!");
        } else {
            int songNo = 1;
            while (currentNode != tail) {
                System.out.println("Canción " + songNo + ": " + currentNode.data);
                currentNode = currentNode.nextNode;
                songNo++;
            }
            System.out.println("Canción " + songNo + ": " + currentNode.data);
        }
    }
}

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

        playlist.insertLast("Nombre de la canción 1");
        playlist.insertLast("Nombre de la canción 2");
        playlist.insertLast("Nombre de la canción 3");
        playlist.insertLast("Nombre de la canción 4");
        playlist.displayPlayist();
    }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar datos de tipo String a la lista doblemente enlazada circular, es necesario modificar la clase Node y agregar un parámetro para los datos en el constructor. Así es cómo puedes modificar la clase Node:

    class Node {
        String data;
        Node nextNode;
        Node prevNode;
    
        Node(String data) {
            this.data = data;
            this.nextNode = null;
            this.prevNode = null;
        }
    }
    

    En la clase CircularDoublyLL, debes crear un nuevo objeto Node pasando el nombre de la canción al constructor como parámetro. Así es cómo puedes modificar el método insertLast:

    public void insertLast(String songName) {
        Node newNode = new Node(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;
        }
    }
    

    Esto creará un nuevo objeto Node con el parámetro de datos y luego lo agregará al final de la lista doblemente enlazada circular.

    Para obtener la salida, simplemente necesitas llamar al método displayPlaylist en el objeto CircularDoublyLL. Así es cómo puedes modificar el método main para mostrar la lista de reproducción:

    public static void main(String[] args) {
        CircularDoublyLL playlist = new CircularDoublyLL();
    
        playlist.insertLast("Nombre de la canción 1");
        playlist.insertLast("Nombre de la canción 2");
        playlist.insertLast("Nombre de la canción 3");
        playlist.insertLast("Nombre de la canción 4");
    
        playlist.displayPlayist();
    }
    

    Esto creará un nuevo objeto CircularDoublyLL, agregará algunas canciones utilizando el método insertLast y luego mostrará la lista de reproducción utilizando el método displayPlaylist.

Comments are closed.