CafeM0ca

[C]큐 구현 본문

Programming/자료구조|알고리즘

[C]큐 구현

M0ca 2017. 11. 16. 03:55
반응형

30분만에 구현했다. 다른 사람이 어떻게 짯는지 관심 없어서 스택이랑 비슷하게 짜봤다.

선형 큐 말고 환영 큐(원형 큐)로 짰다. 테스트 케이스를 안넣어봐서 잘 모르겠는데 뇌파일러로 굴려보면 제대로 짠거같다.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include<stdio.h>
 
typedef struct queue {
    int index;
    int head;
    int qsize;
    int arr[10000];
}Queue;
 
void Push(Queue * q) {
    int v;
    scanf("%d"&v);
    if (q->qsize == 10000)
        printf("push fail\n");
    else {
        q->qsize++;
        printf("push succes :%d\n", q->arr[q->index++= v);
        if (q->index >= 10000)
            q->index = 0;
    }
}
 
void Pop(Queue * q){
    if (q->qsize == 0)
        printf("Pop fail\n");
    else {
        q->qsize--;
        printf("Pop succes :%d\n", q->arr[q->head++]);
        if (q->head >= 10000)
            q->head = 0;
    }
}
 
void Full(Queue * q) {
    if (q->qsize == 10000)
        printf("Queue is Full\n");
    else
        printf("Queue isn't Full\n");
}
 
void Empty(Queue * q) {
    if (q->qsize == 0)
        printf("Queue is Empty\n");
    else
        printf("Queue isn't Empty\n");
}
 
void Top(Queue * q) {
    if (q->qsize == 0)
        printf("Nothing\n");
    else
        printf("Top is %d\n", q->arr[q->head]);
}
 
int main(void)
{
    Queue q = { 0,0,0,0 };
    Push(&q);
    Push(&q);
    Top(&q);
    Pop(&q);
    Empty(&q);
    Full(&q);
    Push(&q);
    Pop(&q);
    return 0;
}
cs


반응형
Comments