+++ /dev/null
-#include <argp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sylvan.h>
-#include <lace.h>
-
-#include "deque.h"
-
-deque *create()
-{
- deque *d;
- d = (deque *)malloc(sizeof(deque));
- d->front = NULL;
- d->rear = NULL;
- d->count = 0;
-
- return d;
-}
-
-deque *enq(state_t *s, deque *d)
-{
- if (d->rear == NULL){
- d->rear = (node_t *)malloc(sizeof(node_t));
- d->rear->ptr = NULL;
- d->rear->s = s;
- d->front = d->rear;
- }
- else {
- node_t *temp = (node_t *)malloc(sizeof(node_t));
- d->rear->ptr = temp;
- temp->s = s;
- temp->ptr = NULL;
- d->rear = temp;
- }
- d->count++;
-
- return d;
-}
-
-deque *deq(deque *d)
-{
- node_t *front_tmp = d->front;
-
- if (front_tmp == NULL){
- return d;
- }
- else if (front_tmp->ptr != NULL){
- front_tmp = front_tmp->ptr;
- free(d->front);
- d->front = front_tmp;
- }
- else {
- free(d->front);
- d->front = NULL;
- d->rear = NULL;
- }
- d->count--;
- return d;
-}
-
-int isEmpty(deque *d)
-{
- if (d->front != NULL && d->rear != NULL) return 0;
- else return 1;
-}
-
-state_t *get_front(deque *d)
-{
- if (isEmpty(d) == 0) return d->front->s;
- else return NULL;
-}