-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMyDLLImpl.java
More file actions
98 lines (86 loc) · 2.03 KB
/
MyDLLImpl.java
File metadata and controls
98 lines (86 loc) · 2.03 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
package lab5;
public class MyDLLImpl <E> implements MyDoubleLinkedList {
private MyDoubleNode head;
private MyDoubleNode tail;
private int size;
public MyDLLImpl() {
head = new MyDoubleNode(null, tail, null);
tail = new MyDoubleNode(null, null, head);
size = 0;
}
@Override
public void insert(Object x) {
// TODO Auto-generated method stub
MyDoubleNode current = new MyDoubleNode(x, tail, tail.prev);
tail.prev.next = current;
tail.prev = current;
size++;
}
@Override
public void delete(Object x) {
// TODO Auto-generated method stub
if(this.isEmpty() == false) {
for(MyDoubleNode i = head; i != tail.next; i = i.next) {
if(i.data == x) {
i.prev.next = i.next;
i.next.prev = i.prev;
size--;
}
}
}
}
@Override
public boolean lookup(Object x) {
// TODO Auto-generated method stub
for(MyDoubleNode i = head; i != tail; i = i.next) {
if(i.data == x) {
return true;
}
}
return false;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return size == 0;
}
@Override
public void printList() {
// TODO Auto-generated method stub
MyDoubleNode currentNode = head.next;
System.out.print("List: ");
while (currentNode != tail.prev) {
System.out.print(currentNode.data + ", ");
currentNode = currentNode.next;
}
System.out.println(tail.prev.data + ".");
}
@Override
public void printListRev() {
// TODO Auto-generated method stub
MyDoubleNode currentNode = tail.prev;
System.out.print("List in reverse: ");
while (currentNode != head.next) {
System.out.print(currentNode.data + ", ");
currentNode = currentNode.prev;
}
System.out.println(head.next.data + ".");
}
public int getSize() {
return size;
}
public void insert(Object x, MyDoubleNode a) {
MyDoubleNode current = new MyDoubleNode(x, a.next, a);
a.next.prev = current;
a.next = current;
size++;
}
public MyDoubleNode get(Object x) {
for(MyDoubleNode i = head; i != tail; i = i.next) {
if(i.data == x) {
return i;
}
}
return null;
}
}