큐를 위해 배열을 지정해 놓고 큐를 쓰다보면 배열의 앞부분이 비게된다는 점을 활용해서 배열의 맨 마지막 부분을 쓰면 다시 제일 처음부터 다시 큐를 채우기 시작하는 형태의 큐이다.



#include <stdio.h>

#include <malloc.h>


#define MAX 10

int queue[MAX];

int front, rear;


int put(int data)

{

if ((rear + 1) % MAX == front) {

printf("Queue overflow\n");

return -1;

}


queue[rear++] = data;

rear = rear % MAX;

return data;

}


int get() {

if (front == rear) {

printf("There is no data in Queue\n");

return -1;

}

int idx = front;

front = (front + 1) % MAX;

return queue[idx];

}


void printList() {

int i;


printf("Queue :");

for (i = front; i < rear; ++i) {

printf(" %d", queue[i]);

}

printf("\n");

}


int main()

{

int i;

front = rear = 0;


get();


for (i = 0; i < 11 ; ++i) {

put(i);

}


printList();


get();


printList();


return 0;

}


'SW > 자료구조' 카테고리의 다른 글

Binary Tree  (0) 2019.02.23
Tree  (0) 2019.02.23
Queue  (0) 2019.01.06
Stack  (0) 2019.01.06
Linked List 3 - Circular Linked List  (0) 2019.01.06

+ Recent posts