Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <dirent.h>
- #include <sys/types.h>
- #include <string.h>
- #include <stdlib.h>
- typedef struct Queue {
- int* data;
- int size;
- int maxSize;
- int head;
- int tail;
- } Queue;
- Queue* InitQueue () {
- Queue* q = malloc(sizeof(Queue));
- q->data = calloc(8, sizeof(int));
- q->maxSize = 8;
- q->size = 0;
- q->head = -1;
- q->tail = -1;
- }
- void Enqueue (Queue* que, int el) {
- if (que->size == 0) {
- que->data[0] = el;
- que->head = 0;
- que->tail = 0;
- } else if (que->size == que->maxSize) {
- printf("realloc\n");
- //realloc
- } else {
- que->head++;
- if (que->head == que->maxSize)
- que->head = 0;
- que->data[que->head] = el;
- }
- que->size++;
- }
- int Dequeue (Queue* que) {
- if (que->size == 0)
- {
- printf("Error\n");
- return 0;
- }
- int res = que->data[que->tail];
- que->data[que->tail] = 0;
- if (que->tail == que->head)
- {
- que->head = -1;
- que->tail = -1;
- } else {
- que->tail += 1;
- if (que->tail == que->maxSize)
- que->tail = 0;
- }
- que->size--;
- return res;
- }
- void PrintQueue (Queue* que) {
- for (int i = 0; i < que->maxSize; i++)
- {
- printf("%d ", que->data[i]);
- }
- printf("\n");
- }
- int main () {
- Queue* q = InitQueue();
- PrintQueue(q);
- Enqueue(q, 2);
- PrintQueue(q);
- Enqueue(q, 3);
- PrintQueue(q);
- Enqueue(q, 4);
- PrintQueue(q);
- Enqueue(q, 5);
- PrintQueue(q);
- Enqueue(q, 6);
- PrintQueue(q);
- Enqueue(q, 7);
- PrintQueue(q);
- Enqueue(q, 8);
- PrintQueue(q);
- Enqueue(q, 9);
- PrintQueue(q);
- int a = Dequeue(q);
- PrintQueue(q);
- a = Dequeue(q);
- PrintQueue(q);
- a = Dequeue(q);
- PrintQueue(q);
- a = Dequeue(q);
- PrintQueue(q);
- Enqueue(q, 6);
- PrintQueue(q);
- Enqueue(q, 7);
- PrintQueue(q);
- Enqueue(q, 8);
- PrintQueue(q);
- a = Dequeue(q);
- PrintQueue(q);
- a = Dequeue(q);
- PrintQueue(q);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement