TEST/자료구조와 함께 배우는 알고리즘 입문(C언어)
<4> Q3. 자료구조와 함께 배우는 알고리즘 입문 (C언어)
도라몬즈
2021. 1. 5. 19:39
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int max;
int num;
int *que;
} ArrayIntQueue;
int Enqueue(ArrayIntQueue *s, int x)
{
s->que[s->num++] = x;
return 0;
}
int Dequeue(ArrayIntQueue *s)
{
if (s->num == NULL)
{
printf("ERROR!!!!!!!!!!\n");
return -1;
}
s->num--;
printf("Dequeude : %d\n", s->que[0]);
for (int i = 0; i < s->max - 1; i++)
{
s->que[i] = s->que[i + 1];
}
s->que[s->max - 1] = NULL;
return 0;
}
int main(void)
{
ArrayIntQueue a;
int temp;
a.num = 0;
printf("Input Max : ");
scanf("%d", &a.max);
a.que = (int *)calloc(a.max, sizeof(int));
while (1)
{
printf("1.EnQueue, 2.DeQueue, 3.Print, 4.Exit : ");
scanf("%d", &temp);
switch (temp)
{
case 1:
if (a.num == a.max)
{
printf("ERROR!!!!!!!!!!!!\n");
break;
}
printf("Input Number : ");
scanf("%d", &temp);
Enqueue(&a, temp);
break;
case 2:
Dequeue(&a);
break;
case 3:
for (int i = 0; i < a.max; i++)
{
printf("%d ", a.que[i]);
}
printf("\n");
break;
case 4:
return 0;
}
}
}