-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdequeDLL.java
113 lines (103 loc) · 2.14 KB
/
dequeDLL.java
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
public class dequeDLL {
static class deque {
int data;
deque prev;
deque next;
deque front;
deque rear;
deque(){}
deque(int d){
this.data = d;
this.next = null;
this.prev = null;
}
};
static deque deq;
private static boolean isEmpty(deque q){
return q.front == null;
}
private static void addFront(deque q, int d){
if(q.front == null){
q.front = new deque(d);
if(q.rear == null){
q.rear = q.front;
}
} else {
deque t = q.front;
deque t1 = new deque(d);
t1.next = t;
t.prev = t1;
q.front = t1;
}
}
private static void addRear(deque q, int d){
if(q.rear == null){
q.rear = new deque(d);
if(q.front == null){
q.front = q.rear;
}
} else {
deque t = q.rear;
deque t1 = new deque(d);
t.next = t1;
t1.prev = t;
q.rear = t1;
}
}
private static void deleteFront(deque q){
if(isEmpty(q)){
return;
}
q.front = q.front.next;
if(q.rear == q.front){
q.rear.prev = null;
} else if(q.front == null){
q.front = null;
}
}
private static void deleteRear(deque q){
if(isEmpty(q)){
return;
}
q.rear = q.rear.prev;
if(q.rear == q.front){
q.front.next = null;
} else if(q.rear == null){
q.front = null;
}
}
private static int getFront(deque q){
if(isEmpty(q)){
return Integer.MAX_VALUE;
}
return q.front.data;
}
private static int getRear(deque q){
if(isEmpty(q)){
return Integer.MAX_VALUE;
}
return q.rear.data;
}
public static void main(String args[]){
deq = new deque();
addFront(deq, 10);
addFront(deq, 20);
addFront(deq, 30);
addFront(deq, 40);
addRear(deq, 50);
addRear(deq, 60);
addRear(deq, 70);
addRear(deq, 80);
System.out.print(getRear(deq)+" ");
deleteFront(deq);
deleteFront(deq);
deleteFront(deq);
deleteFront(deq);
deleteFront(deq);
deleteFront(deq);
deleteFront(deq);
deleteRear(deq);
System.out.print(getRear(deq)+" ");
System.out.print(getFront(deq)+" ");
}
}