| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- public class DoublyCircularLinkedList<T> {
- private static class Node<T> {
- T data;
- Node<T> next;
- Node<T> prev;
- Node(T data) {
- this.data = data;
- this.next = null;
- this.prev = null;
- }
- }
- private Node<T> head;
- private int size;
- public DoublyCircularLinkedList() {
- head = null;
- size = 0;
- }
- // Método para agregar un elemento al final de la lista
- public void add(T item) {
- Node<T> newNode = new Node<>(item);
- if (head == null) {
- head = newNode;
- head.next = head;
- head.prev = head;
- } else {
- Node<T> last = head.prev;
- last.next = newNode;
- newNode.prev = last;
- newNode.next = head;
- head.prev = newNode;
- }
- size++;
- }
- // Método para eliminar un elemento por su valor
- public boolean remove(T item) {
- if (head == null) {
- return false;
- }
- Node<T> current = head;
- do {
- if (current.data.equals(item)) {
- if (size == 1) {
- head = null;
- } else {
- Node<T> prevNode = current.prev;
- Node<T> nextNode = current.next;
- prevNode.next = nextNode;
- nextNode.prev = prevNode;
- if (current == head) {
- head = nextNode;
- }
- }
- size--;
- return true;
- }
- current = current.next;
- } while (current != head);
- return false;
- }
- // Método para verificar si la lista está vacía
- public boolean isEmpty() {
- return head == null;
- }
- // Método para obtener el tamaño de la lista
- public int size() {
- return size;
- }
- // Método para imprimir los elementos de la lista
- public void printList() {
- if (head == null) {
- System.out.println("La lista está vacía.");
- return;
- }
- Node<T> current = head;
- do {
- System.out.print(current.data + " ");
- current = current.next;
- } while (current != head);
- System.out.println();
- }
- public static void main(String[] args) {
- DoublyCircularLinkedList<Integer> list = new DoublyCircularLinkedList<>();
- list.add(1);
- list.add(2);
- list.add(3);
- System.out.print("Elementos en la lista: ");
- list.printList();
- System.out.println("Eliminando el elemento 2: " + list.remove(2));
- System.out.print("Elementos en la lista después de eliminar: ");
- list.printList();
- System.out.println("Tamaño de la lista: " + list.size());
- }
- }
|