Deque

J_JEON·2022년 7월 20일
0

DataStructure

목록 보기
2/2

Deque

  • Double Ended Queue라는 이름처럼 기존의 큐와 다르게 앞,뒤에서 바로 자료를 넣고 뺄 수 있는 구조

기본 구조

typedef struct s_node
{
	int				num;
	struct s_node	*prev;
	struct s_node	*next;
}	t_node;

typedef struct s_deque
{
	t_node	*first;
	t_node	*last;
}	t_deque;

Deque 생성

t_deque	*make_deque(void)
{
	t_deque	*new_deque;

	new_deque = malloc(sizeof(t_deque));
	new_deque->first = NULL;
	new_deque->last = NULL;
	return (new_deque);
}

마지막에 값 넣기

t_node	*add_node(t_deque *deq, int num)
{
	t_node	*new_node;

	new_node = malloc(sizeof(t_node));
	if (new_node == NULL)
		return (0);
	new_node->num = num;
	new_node->next = NULL;
	new_node->prev = deq->last;
	if (deq->last == NULL && deq->first == NULL)
	{
		deq->last = new_node;
		deq->first = new_node;
	}
	else
	{
		if (deq->last != NULL)
			deq->last->next = new_node;
		deq->last = new_node;
	}
	return (new_node);
}
profile
늅늅

0개의 댓글