Advertisement
robeeeert

Untitled

Apr 25th, 2024
913
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.63 KB | None | 0 0
  1.  
  2. // Clase Nodo que representa los nodos individuales de la lista doblemente enlazada
  3. class NodoDoble {
  4.     private int numero;
  5.     private Nodo siguiente;
  6.     private Nodo anterior;
  7.  
  8.     // Constructor para crear un nuevo nodo con un número dado
  9.     public NodoDoble(int numero) {
  10.         this.numero = numero;
  11.         this.siguiente = null;
  12.         this.anterior = null;
  13.     }
  14.  
  15.     // Métodos getter y setter para el número almacenado en el nodo
  16.     public int getNumero() {
  17.         return numero;
  18.     }
  19.  
  20.     public void setNumero(int numero) {
  21.         this.numero = numero;
  22.     }
  23.  
  24.     // Métodos getter y setter para el nodo siguiente
  25.     public Nodo getSiguiente() {
  26.         return siguiente;
  27.     }
  28.  
  29.     public void setSiguiente(Nodo siguiente) {
  30.         this.siguiente = siguiente;
  31.     }
  32.  
  33.     // Métodos getter y setter para el nodo anterior
  34.     public Nodo getAnterior() {
  35.         return anterior;
  36.     }
  37.  
  38.     public void setAnterior(Nodo anterior) {
  39.         this.anterior = anterior;
  40.     }
  41. }
  42.  
  43.  
  44.  
  45.  
  46. class ListaDoble {
  47.     private NodoDoble inicio;
  48.  
  49.     // Método para agregar un nuevo elemento al final de la lista
  50.     public void agregar(int numero) {
  51.         NodoDoble nuevoNodo = new NodoDoble(numero);
  52.         if (inicio == null) {
  53.             inicio = nuevoNodo;
  54.         } else {
  55.             NodoDoble tmp = inicio;
  56.             while (tmp.getSiguiente() != null) {
  57.                 tmp = tmp.getSiguiente();
  58.             }
  59.             tmp.setSiguiente(nuevoNodo);
  60.             nuevoNodo.setAnterior(tmp);
  61.         }
  62.     }
  63.  
  64.     // Método para mostrar los elementos de la lista en orden
  65.     public void mostrar() {
  66.         NodoDoble tmp = inicio;
  67.         while (tmp != null) {
  68.             System.out.print(tmp.getNumero() + " ");
  69.             tmp = tmp.getSiguiente();
  70.         }
  71.         System.out.println();
  72.     }
  73.  
  74.     // Método para eliminar un nodo que contiene un número específico
  75.     public void eliminar(int numero) {
  76.         NodoDoble tmp = inicio;
  77.         while (tmp != null) {
  78.             if (tmp.getNumero() == numero) {
  79.                 if (tmp.getAnterior() != null) {
  80.                     tmp.getAnterior().setSiguiente(tmp.getSiguiente());
  81.                 }
  82.                 if (tmp.getSiguiente() != null) {
  83.                     tmp.getSiguiente().setAnterior(tmp.getAnterior());
  84.                 }
  85.                 if (tmp == inicio) {
  86.                     inicio = tmp.getSiguiente();
  87.                 }
  88.                 return;
  89.             }
  90.             tmp = tmp.getSiguiente();
  91.         }
  92.         System.out.println("El número " + numero + " no está en la lista");
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement