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;
        }
    }
}