Instructions
Requirements and Specifications
Source Code
#include <stdlib.h>
int count(char ***deque, char ***back, char ***end) {
return *back - *deque;
}
int capacity(char ***deque, char ***back, char ***end) {
return *end - *deque;
}
char* getFront(char ***deque, char ***back, char ***end) {
if (count(deque, back, end) == 0) {
return NULL;
}
return **deque;
}
char* getBack(char ***deque, char ***back, char ***end) {
if (count(deque, back, end) == 0) {
return NULL;
}
return *(*back - 1);
}
void addBack(char ***deque, char ***back, char ***end, char *string) {
if (count(deque, back, end) == capacity(deque, back, end)) {
return;
}
**back = string;
(*back)++;
}
char* removeBack(char ***deque, char ***back, char ***end) {
if (count(deque, back, end) == 0) {
return NULL;
}
char *result = *(*back - 1);
(*back)--;
return result;
}
char* removeFront(char ***deque, char ***back, char ***end) {
if (count(deque, back, end) == 0) {
return NULL;
}
char *result = **deque;
(*deque)++;
return result;
}