Algorithm
[C์ธ์ด] - ํ Queue
say!
2023. 1. 11. 17:24
728x90
๐ต์ ํ ํ
front, rear ์ด๊ธฐ๊ฐ์ -1
์ ์ ์ ์ถ FIFO
๐ก ์ ํ ํ ์ฝ๋
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef int element;
typedef struct {
int front;
int rear;
element data[MAX_SIZE];
} QueueType;
void init(QueueType* q) {
q->front = -1;
q->rear = -1;
}
int is_full(QueueType* q) {
return q->rear == MAX_SIZE - 1;
}
int is_empty(QueueType* q) {
return q->front == q->rear;
}
void enqueue(QueueType* q, int item) {
if (is_full(q)) {
printf("์๋ฌ");
return;
}
else {
q->data[++(q->rear)] = item;
}
}
int dequeue(QueueType * q) {
if (is_empty(q)) {
printf("์๋ฌ");
return;
}
else {
return q->data[++(q->front)];
}
}
int main() {
int i;
QueueType q;
init(&q);
enqueue(&q, 1);
enqueue(&q, 2);
enqueue(&q, 3);
i = dequeue(&q);
printf("%d\n", i);
return 0;
}