티스토리 뷰

#include <stdio.h>
#include <stdlib.h>
#define Q_SIZE 100
 
typedef int element;
 
typedef struct{
    element queue[Q_SIZE];
    int front, rear;
} QueueType;
 
element mysize = 0;
 
QueueType *createQueue(){
    QueueType *Q;
    Q = (QueueType *)malloc(sizeof(QueueType));
    Q -> front = 0;
    Q -> rear = 0;
    return Q;
}
 
int isEmpty(QueueType *Q){
    if(Q->front == Q->rear){
        return 1;
    }
    else return 0;
}
 
int isFull(QueueType *Q){
    if(((Q->rear+1) % Q_SIZE) == Q->front){
        return 1;
    }
    else return 0;
}
 
void enQueue(QueueType *Q, element item){
    if(isFull(Q)) return;
    else{
        Q->rear = (Q->rear+1)%Q_SIZE;
        Q->queue[Q->rear] = item;
        mysize++;
    }
}
 
element deQueue(QueueType *Q){
    if(isEmpty(Q)) return;
    else {
        mysize--;
        Q->front = (Q->front+1)%Q_SIZE;
        return Q->queue[Q->front];
    }
}
 
element peek(QueueType *Q){
    if(isEmpty(Q)) exit(1);
    else return Q-> queue[(Q->front+1)%Q_SIZE];
}
void size(void){
    printf("%d\n",mysize);
}
 
void printQ(QueueType *Q){
    int i, first, last;
    first = (Q->front+1)%Q_SIZE;
    last = (Q->rear+1)%Q_SIZE;
    printf(" Queue : [");
    i = first;
    while(i!=last){
        printf("%3c",Q->queue[i]);
        i = (i+1)%Q_SIZE;
    }
    printf("]\n");
}
 
int main(void){
    QueueType *Q1 = createQueue();
    element data;
 
    int n;
 
    scanf("%d",&n);
    int i;
 
    int aaa;
    for(i = 0;i<n;i++){
        char c;
        scanf(" %c",&c);
 
        switch(c){
            case 'i':
            scanf("%d",&aaa);
            enQueue(Q1, aaa);
            break;
 
            case 'o':
            if(isEmpty(Q1)==1){
                printf("empty\n");
            }
            else
                printf("%d\n",deQueue(Q1));
            break;
 
            case 'c':
            size();
            break;
 
    }
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함