<aside> 💡 Queue의 정의와 이용
</aside>
선입선출 방식(First in First out)이며 스택과는 반대이다.
<aside> 💡 Deque의 정의와 이용
</aside>
추가와 반환이 가능한 자료구조.double linked list를 이용한다.

#ifndef _LINKED_DEQUE_
#define _LINKED_DEQUE_
typedef struct DequeNodeType
{
char data;
struct DequeNodeType* pRLink;//오른쪽 링크
struct DequeNodeType* pLLink;//왼쪽 링크
} DequeNode;
typedef struct LinkedDequeType
{
int currentElementCount;//현재 원소 개수
DequeNode* pFrontNode;//frontNode의 주소
DequeNode* pRearNode;//RearNode의 주소
} LinkedDeque;
#include <stdio.h>
#include <stdlib.h>
LinkedDeque* createLinkedDeque();
int insertFrontLD(LinkedDeque* pDeque, DequeNode element);
int insertRearLD(LinkedDeque* pDeque, DequeNode element);
DequeNode* deleteFrontLD(LinkedDeque* pDeque);
DequeNode* deleteRearLD(LinkedDeque* pDeque);
DequeNode* peekFrontLD(LinkedDeque* pDeque);
DequeNode* peekRearLD(LinkedDeque* pDeque);
void deleteLinkedDeque(LinkedDeque* pDeque);
int isLinkedDequeFull(LinkedDeque* pDeque);
int isLinkedDequeEmpty(LinkedDeque* pDeque);
#endif
#ifndef _COMMON_QUEUE_DEF_
#define _COMMON_QUEUE_DEF_
#define TRUE 1
#define FALSE 0
#endif
LinkedDeque* createLinkedDeque()
{
LinkedDeque *pReturn;
pReturn = (LinkedDeque *)calloc(1, sizeof(LinkedDeque));//LinkedDeque 변수를 동적할당 후 0으로 초기화
if (pReturn == NULL)//동적할당 실패
{
printf("malloc failure\\n");
return (NULL);
}
return (pReturn);
}
함수 기능 : 덱을 하나 만들고, 이 주소값을 반환하는 함수.