#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef int element; //int형을 큐 element의 자료형으로 정의
typedef struct
{
element queue[MAX_SIZE];
int front, rear;
} QueueType;
void init(QueueType *q)
{
q->front=q->rear=0;
}
void error(char *message)
{
fprintf(stderr,"%s\n",message);
exit(1);
}
void enqueue(QueueType *q,element item)
{
if((q->rear+1)%MAX_SIZE==q->front)
error("큐가 포화상태입니다");
q->rear=(q->rear+1)%MAX_SIZE;
q->queue[q->rear]=item;
}
element dequeue(QueueType *q)
{
if(q->front==q->rear)
error("큐가 공백상태입니다");
q->front=(q->front+1)%MAX_SIZE;
return q->queue[q->front];
}
int main()
{
QueueType q;
init(&q);
printf("item= %d \n",q.queue[q.front]);
printf("front= %d \n",q.front);
printf("rear= %d \n",q.rear);
enqueue(&q,99);
enqueue(&q,88);
printf("item= %d \n",q.queue[q.front]);
printf("item= %d \n",q.queue[q.front+1]);
printf("item= %d \n",q.queue[q.front+2]);
printf("front= %d \n",q.front);
printf("rear= %d \n",q.rear);
dequeue(&q);
printf("item= %d \n",q.queue[q.front]);
printf("item= %d \n",q.queue[q.front+1]);
printf("item= %d \n",q.queue[q.front+2]);
printf("front= %d \n",q.front);
printf("rear= %d \n",q.rear);
}
C언어 자료구조 DFS (0) | 2021.12.03 |
---|---|
C언어 자료구조 BFS (0) | 2021.12.03 |
Visual Basic 2019 날짜를 파일명으로 MDB 생성 (0) | 2021.05.24 |
Python & Algorithm #1 최대공약수, 최소공배수 (0) | 2019.05.17 |
파이썬과 노트패드의 연결 (0) | 2017.10.25 |