// Define la clase Nodo que representa cada cliente en la lista.
class Nodo {
String nombre; // Nombre del cliente
int habitacion; // Número de la habitación del cliente
Nodo siguiente; // Referencia al siguiente nodo en la lista
// Constructor de la clase Nodo
public Nodo(String nombre, int habitacion) {
this.nombre = nombre; // Asigna el nombre del cliente
this.habitacion = habitacion; // Asigna el número de habitación
this.siguiente = null; // Inicializa el siguiente nodo como null
}
}
// Define la clase ListaEnlazada para manejar la lista de clientes.
class ListaEnlazada {
Nodo cabeza; // Primer nodo de la lista enlazada
// Constructor de la clase ListaEnlazada
public ListaEnlazada() {
cabeza = null; // Inicializa la cabeza de la lista como null
}
// Método para agregar un nuevo cliente a la lista en orden alfabético
public void agregarCliente(String nombre, int habitacion) {
Nodo nuevoNodo = new Nodo(nombre, habitacion); // Crea un nuevo nodo
// Inserta el nodo al principio si la lista está vacía o si el nuevo nodo va antes de la cabeza
if (cabeza == null || cabeza.nombre.compareTo(nuevoNodo.nombre) > 0) {
nuevoNodo.siguiente = cabeza;
cabeza = nuevoNodo;
} else {
Nodo actual = cabeza;
// Busca el lugar correcto para insertar el nuevo nodo
while (actual.siguiente != null && actual.siguiente.nombre.compareTo(nuevoNodo.nombre) < 0) {
actual = actual.siguiente;
}
// Inserta el nuevo nodo en la posición encontrada
nuevoNodo.siguiente = actual.siguiente;
actual.siguiente = nuevoNodo;
}
}
// Método para imprimir la lista de clientes en formato tabular
public void imprimirClientes() {
Nodo actual = cabeza;
System.out.println("+----------------+-------------+");
System.out.println("| Nombre Cliente | Habitación |");
System.out.println("+----------------+-------------+");
while (actual != null) {
// Formatea y muestra los datos del cliente
System.out.format("| %-14s | %-11d |\n", actual.nombre, actual.habitacion);
actual = actual.siguiente;
}
System.out.println("+----------------+-------------+");
}
}
// Clase principal que contiene el método main para ejecutar el programa
public class Main {
public static void main(String[] args) {
ListaEnlazada clientesHotel = new ListaEnlazada(); // Crea una lista enlazada
// Agrega clientes a la lista
clientesHotel.agregarCliente("Pedro Solís", 105);
clientesHotel.agregarCliente("Alicia Fonseca", 102);
clientesHotel.agregarCliente("Brandon Ulate", 201);
// Imprime la lista de clientes
clientesHotel.imprimirClientes();
}
}
To embed this program on your website, copy the following code and paste it into your website's HTML: