/
doubleLinkedList.cpp
47 lines (36 loc) 路 1.01 KB
/
doubleLinkedList.cpp
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
struct DoubleLinkedListNode: Node {
DoubleLinkedListNode() {
next = NULL;
prev = NULL;
}
DoubleLinkedListNode(int value, DoubleLinkedListNode *nextNode, DoubleLinkedListNode *prevNode);
DoubleLinkedListNode *next;
DoubleLinkedListNode *prev;
};
DoubleLinkedListNode::DoubleLinkedListNode(int value, DoubleLinkedListNode *nextNode, DoubleLinkedListNode *prevNode) {
next = nextNode;
prev = prevNode;
data = value;
}
class DoubleLinkedList {
public:
DoubleLinkedListNode *head = NULL;
DoubleLinkedList() { }
void insertFront(int value);
void deleteFront();
bool isEmpty();
};
bool DoubleLinkedList::isEmpty() {
return (head == NULL);
}
void DoubleLinkedList::insertFront(int value) {
DoubleLinkedListNode *node = new DoubleLinkedListNode(value, head, NULL);
head = node;
if (head->next != NULL) { head->next->prev = head; }
}
void DoubleLinkedList::deleteFront() {
DoubleLinkedListNode *tmp = head->next;
if (tmp != NULL) { tmp->prev = NULL; }
delete head;
head = tmp;
}