school/cs235/lab05/deque.cpp
2016-04-06 20:46:10 -07:00

61 lines
1.0 KiB
C++

#include "deque.h"
bool deque::addToDequeLeft(int id) {
if(in_deque(id)) {
return false;
}
l.insertHead(id);
return true;
}
bool deque::addToDequeRight(int id) {
if(in_deque(id)) {
return false;
}
l.insertTail(id);
return true;
}
int deque::removeFromDequeLeft() {
int id = l.at(l.size() - 1);
l.remove(id);
return true;
}
int deque::removeFromDequeRight() {
int id = l.at(0);
l.remove(id);
return false;
}
int deque::showTopOfDequeLeft() {
if(l.size() == 0) {
return -1;
}
int left = l.at(l.size() - 1);
return left;
}
int deque::showTopOfDequeRight() {
if(l.size() == 0) {
return -1;
}
int right = l.at(0);
return right;
}
int deque::showSizeOfDeque() {
return l.size();
}
bool deque::in_deque(int id) {
node* node_ptr = l.head;
while(node_ptr != NULL) {
if(node_ptr->id == id) {
return true;
}
node_ptr = node_ptr->next;
}
return false;
}