[C++, 자료구조] 덱(Deque)
·
C++/자료구조
■ 덱(Deque)스택은 같은 한쪽(Top)에서 데이터를 넣고 빼는 구조였고, 큐는 뒤에서 데이터를 넣고 앞에서 데이터를 꺼내는 자료구조였다.덱은 앞으로도 뒤로도 넣을 수 있고, 앞으로도 뒤로도 뺄 수 있는, 스택과 큐의 특성을 모두 갖추고 있는 자료구조이다.Deque는 ‘디큐’로 읽기 쉬운데, 이러면 큐의 Dequeue연산과 발음이 같아져 “덱”으로 발음한다Double-Ended Queue의 줄임말이다.▶ 덱의 추상 자료형덱의 특성을 살펴봤으니, 이번엔 덱의 추상 자료형에 대해 살펴보자.정의설명void InitDeque(Deque* dq)덱의 초기화를 진행한다. 덱 생성 후 가장 먼저 호출한다.bool IsEmpty(Deque* dq)덱이 빈 경우 ture, 그렇지 않은 경우는 false를 반환한다.v..
[C++, 자료구조] 큐(Queue)
·
C++/자료구조
■ 큐(Queue)앞서 스택(Stack)은 먼저 들어온 것이 나중에 나가는 “선입후출(FILO)” 구조를 지녔다. 그리고 이걸 “쌓여있는 접시”, “프링글스 통 안의 감자칩”에 비유했었다, 반대로 큐(Queue)는 “줄을 서 있는 사람들”처럼 먼저 들어온 것이 먼저 나가는 “선입선출(FIFO)”의 구조를 지닌다.큐의 개념은 일상생활에서도 쉽게 찾을 수 있다. 고무호스, 터널, 극장표 예매처 등은 모두 큐의 동작 방식과 유사한 구조이다.▶ 큐의 추상 자료형스택과 마찬가지로 큐의 추상 자료형도 정형화된 편이다.enqueue : 큐에 데이터를 넣는 연산.dequeue : 큐에서 데이터를 빼는 연산. 정의 의미 void InitQueue(Queue* pq)큐의 초기화를 진행한다.bool IsEmpty(Queu..
[C++, 자료구조] 스택(Stack)
·
C++/자료구조
■ 스택(Stack)스택(Stack) 자료구조는 실 생활에서도 자주 볼 수 있는 상황으로 예를 들 수 있다. 쌓인 상자나 프링글스 통 안의 감자칩처럼, 가장 아래에 있는 물건을 꺼내기 위해선 그 위에 있는 물건을 먼저 꺼내야 한다. 따라서 스택은 “가장 나중에 들어간 것이 가장 먼저 나온다.(LIFO : Last-In, First Out)” 라는 후입선출 방식의 자료구조이다. ▶ 스택의 추상 자료형앞서 살펴본 리스트 자료구조의 추상자료형은 필요에 따라 정의 내용이 차이가 있었다. 하지만 스택의 추상 자료형은 상대적으로 정형화된 편이다. 한쪽이 막혀 있는 프링글스 통을 가지고 할 수 있는 일을 정리해 보면 아래와 같다.프링글스 통에 감자칩을 넣는다 : push프링글스 통에서 감자칩을 꺼낸다 : pop제일 ..