-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDoublyLinkedList.java
More file actions
115 lines (115 loc) · 3.92 KB
/
Copy pathDoublyLinkedList.java
File metadata and controls
115 lines (115 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import java.util.Scanner;
public class DoublyLinkedList {
class Node {
int data;
Node prev, next;
Node(int d) {
data=d;
prev=null;
next=null;
}}
Node head = null;
void insertFront(int data) {
Node newNode = new Node(data);
if (head==null) {
head=newNode;
} else {
newNode.next = head;
head.prev = newNode;
head = newNode;
}}
void insertBack(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
} else {
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = newNode;
newNode.prev = temp;
}}
void deleteFront() {
if (head == null) {
System.out.println("List is empty");
return;
} else {
System.out.println(head.data + " deleted");
head = head.next;
if (head != null) {
head.prev = null;
}}}
void deleteBack() {
if (head == null) {
System.out.println("List is empty!");
} else if (head.next == null) {
System.out.println(head.data + " deleted");
head = null;
} else {
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
System.out.println(temp.data + " deleted");
temp.prev.next = null;
}}
void display() {
Node temp=head;
Node last=null;
if (temp == null) {
System.out.println("List is empty");
} else {
System.out.println("Double Linked List: ");
while (temp != null) {
System.out.print(temp.data + "->");
last = temp;
temp = temp.next;
}
System.out.println("NULL");
System.out.println("\nPrint in reverse: ");
while (last != null) {
System.out.print(last.data + "->");
last = last.prev;
}
System.out.println("START");
}}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
DoublyLinkedList dll = new DoublyLinkedList();
int choice, value;
while (true) {
System.out.println("\n1. Insert at Beginning");
System.out.println("2. Insert at End");
System.out.println("3. Delete from Beginning");
System.out.println("4. Delete from End");
System.out.println("5. Display");
System.out.println("6. Exit");
System.out.print("Enter your choice: ");
choice = sc.nextInt();
switch (choice) {
case 1:
System.out.print("Enter value: ");
value = sc.nextInt();
dll.insertFront(value);
break;
case 2:
System.out.print("Enter value: ");
value = sc.nextInt();
dll.insertBack(value);
break;
case 3:
dll.deleteFront();
break;
case 4:
dll.deleteBack();
break;
case 5:
dll.display();
break;
case 6:
System.out.println("Exiting...");
return;
default:
System.out.println("Invalid choice!");
}}}}