import java.util.Scanner; class Node { int data; Node prev, next; Node(int data) { this.data = data; prev = next = null; } } class DoublyLinkedList { Node head; void insert(int data) { Node newNode = new Node(data); if (head == null) { head = newNode; } else { newNode.next = head; head.prev = newNode; head = newNode; } } void delete(int data) { Node current = head; while (current != null) { if (current.data == data) { if (current.prev != null) { current.prev.next = current.next; } else { head = current.next; } if (current.next != null) { current.next.prev = current.prev; } break; } current = current.next; } } void display() { Node current = head; while (current != null) { System.out.print(current.data + " "); current = current.next; } System.out.println(); } } public class dll { public static void main(String[] args) { DoublyLinkedList list = new DoublyLinkedList(); Scanner scanner = new Scanner(System.in); int choice, data; do { System.out.println("1. Insert"); System.out.println("2. Delete"); System.out.println("3. Display"); System.out.println("4. Exit"); System.out.print("Enter your choice: "); choice = scanner.nextInt(); switch (choice) { case 1: System.out.print("Enter data to insert: "); data = scanner.nextInt(); list.insert(data); break; case 2: System.out.print("Enter data to delete: "); data = scanner.nextInt(); list.delete(data); break; case 3: System.out.print("Doubly Linked List: "); list.display(); break; case 4: System.out.println("Exiting program."); break; default: System.out.println("Invalid choice. Please enter a valid option."); } } while (choice != 4); } }