Computer Science [자료구조] Queue 구현하기 IamToday 2020. 3. 23. 23:36 #include #include #define MAXX 10001 struct Queue { int front, back; int array[MAXX]; }; int isFull(struct Queue *q) { int tmp = (q->back+1)%MAXX; if (tmp == q->front) return 1; return 0; } int isEmpty(struct Queue *q){ if (q->back == q->front) return 1; return 0; } void push(struct Queue* q, int data) { if (isFull(q)) return; q->back = (q->back+1) % MAXX; q->array[q->back] = data; } int pop(struct Queue *q) { if (isEmpty(q)) return -1; q->front = (q->front+1)%MAXX; return q->array[q->front]; } int peek(struct Queue *q){ if (isEmpty(q)) return -1; return q->array[q->front]; } int main() { struct Queue *q = (struct Queue*)malloc(sizeof(struct Queue)); for (int i =1; i <= 7; i++) { push(q, i); } while(!isEmpty(q)) { printf("%d", pop(q)); } free(q); }