Queue란?

<aside> 💡 Queue의 정의와 이용

</aside>

Untitled

Deque란?

<aside> 💡 Deque의 정의와 이용

</aside>

Untitled

Untitled

헤더 분석

#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

createLinkedDeque 구현

LinkedDeque* createLinkedDeque()
{
  LinkedDeque *pReturn;
  pReturn = (LinkedDeque *)calloc(1, sizeof(LinkedDeque));//LinkedDeque 변수를 동적할당 후 0으로 초기화
  if (pReturn == NULL)//동적할당 실패
  {
    printf("malloc failure\\n");
    return (NULL);
  }
  return (pReturn);
}

함수 기능 : 덱을 하나 만들고, 이 주소값을 반환하는 함수.