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;
}
๋Œ“๊ธ€์ˆ˜0