덱을 큐로 사용할 수 있다.
덱을 사용해서 큐를 구현한다.
#ifndef __DB_QUEUE_H__
#define __DB_QUEUE_H__
#include "Deque.h"
typedef Deque Queue;
void QueueInit(Queue *pq);
int QIsEmpty(Queue *pq);
void Enqueue(Queue *pq, Data data);
Data Dequeue(Queue *pq);
Data QPeek(Queue *pq);
#endif
#include "DequeBaseQueue.h"
void QueueInit(Queue *pq)
{
DequeInit(pq);
}
int QIsEmpty(Queue *pq)
{
return DQIsEmpty(pq);
}
void Enqueue(Queue *pq, Data data)
{
DQAddLast(pq, data);
}
Data Dequeue(Queue *pq)
{
return DQRemoveFirst(pq);
}
Data QPeek(Queue *pq)
{
return DQGetFirst(pq);
}
소스파일은 Deque.c에 이미 전부 정의되어 있기 때문에 그대로 가져와서 사용하면 된다.
#include <stdio.h>
#include "DequeBaseQueue.h"
int main()
{
Queue q;
QueueInit(&q);
Enqueue(&q, 1);
Enqueue(&q, 2);
Enqueue(&q, 3);
Enqueue(&q, 4);
Enqueue(&q, 5);
printf("QPeek 데이터 확인 : %d \n", QPeek(&q));
while (!QIsEmpty(&q))
{
printf("%d ", Dequeue(&q));
}
printf("\n");
return 0;
}
1 2 3 4 5