Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "deque.h"
- #define MAXN 10
- typedef struct deque
- {
- int dados[MAXN];
- int ini, fim, tam;
- } deque_t;
- void deque_init (deque_t* d)
- {
- d->tam = 0;
- d->fim = -1;
- d->ini = 0;
- }
- void deque_push_back (deque_t* d, int x)
- {
- if (!deque_full(*d))
- {
- d->fim >= MAXN - 1 ? d->fim = 0 : d->fim++;
- d->dados[d->fim] = x;
- d->tam++;
- }
- else
- printf("Container cheio!\n");
- }
- void deque_push_front (deque_t* d, int x)
- {
- if (!deque_full(*d))
- {
- d->ini <= 0 ? d->ini = (MAXN - 1) : d->ini--;
- d->dados[d->ini] = x;
- d->tam++;
- }
- else
- printf("Container cheio!\n");
- }
- int deque_pop_back (deque_t* d)
- {
- if (!deque_empty(*d))
- {
- int x = d->dados[d->fim];
- d->fim <= 0 ? d->fim = (MAXN - 1) : d->fim--;
- d->tam--;
- return x;
- }
- else
- printf("Container vazio!\n");
- }
- int deque_pop_front (deque_t* d)
- {
- if (!deque_empty(*d))
- {
- int x = d->dados[d->ini];
- d->ini >= MAXN - 1 ? d->ini =0 : d->ini++;
- d->tam--;
- return x;
- }
- else
- printf("Container vazio!\n");
- }
- int deque_full (deque_t d)
- {
- if (d.tam == MAXN) return 1;
- return 0;
- }
- int deque_empty (deque_t d)
- {
- if (!d.tam) return 1;
- return 0;
- }
- void deque_print (deque_t d)
- {
- int i;
- for (i = d.ini; i != d.fim; i >= MAXN - 1 ? i = 0 : i++)
- {
- printf("|%d| i = %d\n", d.dados[i], i);
- }
- printf("|%d| i = %d\n", d.dados[i], i);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement