07장 큐(Queue) – 배열을 이용한
- 배열을 이용한 큐(Queue) 구현 #1 : S007_ArrayQueue.c
1234567891011#include <stdio.h>#include <stdlib.h>#define QUE_LEN 5int QUEUE[QUE_LEN];int front = 0;int rear = 0;void main(int argc, char* argv[]){} - 배열을 이용한 큐(Queue) 구현 #2
123456789101112void enqueue(int data){if(rear == QUE_LEN-1){printf("Overflow\n");}else{QUEUE[++rear] = data;}}void main(int argc, char* argv[]){enqueue(1);} - 배열을 이용한 큐(Queue) 구현 #3
123456789101112void printQueue(){int i=0;printf("front(%2d), rear(%2d) : ", front, rear);for(i=front+1; i<=rear; i++){printf("%d ", QUEUE[i]);}printf("\n");}void main(int argc, char* argv[]){enqueue(1); printQueue();} - 배열을 이용한 큐(Queue) 구현 #4
1234567891011121314151617int dequeue(){if(front == rear){printf("Empty\n");return -1;}else{return QUEUE[++front];}}void main(int argc, char* argv[]){enqueue(1); printQueue();enqueue(3); printQueue();enqueue(5); printQueue();printf("POP : %d\n", dequeue()); printQueue();printf("POP : %d\n", dequeue()); printQueue();} - 배열을 이용한 큐(Queue) 구현 #5
123456789101112131415161718int peek(){if(front == rear){printf("Empty\n");return -1;}else{return QUEUE[front + 1];}}void main(int argc, char* argv[]){enqueue(1); printQueue();enqueue(3); printQueue();enqueue(5); printQueue();printf("PEEK : %d\n", peek()); printQueue();printf("POP : %d\n", dequeue()); printQueue();printf("POP : %d\n", dequeue()); printQueue();} - 배열을 이용한 큐(Queue) 완성 버전
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#include <stdio.h>#include <stdlib.h>#define QUE_LEN 5int QUEUE[QUE_LEN];int front = 0;int rear = 0;////// queue의 기본함수 enqueue(), dequeue(), +알파함수 peek()void enqueue(int data){if(rear == QUE_LEN-1){printf("Overflow\n");}else{QUEUE[++rear] = data;}}int dequeue(){if(front == rear){printf("Empty\n");return -1;}else{return QUEUE[++front];}}int peek(){if(front == rear){printf("Empty\n");return -1;}else{return QUEUE[front + 1];}}////////// queue 추가 함수void initQueue(){front = 0;rear = 0;}int isEmpty(){if(front == rear){return 1; //true}else{return 0; //false}}int isFull(){if(rear == QUE_LEN - 1){return 1; //true}else{return 0; //false}}void printQueue(){int i=0;printf("front(%2d), rear(%2d) : ", front, rear);for(i=front+1; i<=rear; i++){printf("%d ", QUEUE[i]);}printf("\n");}///////// 메인 함수void main(){enqueue(1); printQueue();enqueue(3); printQueue();enqueue(5); printQueue();printf("PEEK : %d\n", peek()); printQueue();printf("POP : %d\n", dequeue()); printQueue();printf("POP : %d\n", dequeue()); printQueue();enqueue(7); printQueue();enqueue(9); printQueue();enqueue(11); printQueue();enqueue(13); printQueue();enqueue(15); printQueue();printf("POP : %d\n", dequeue()); printQueue();printf("PEEK : %d\n", peek()); printQueue();printf("POP : %d\n", dequeue()); printQueue();printf("POP : %d\n", dequeue()); printQueue();printf("POP : %d\n", dequeue()); printQueue();}