스택과 큐는 데이터를 저장하고 관리하는 두가지 주요 데이터 구조이다.
주요 차이점은 데이터의 삽입 및 제거 방법과 데이터의 처리 순서에 있다.
이외의 데이터를 관리하는 구조 예시로는 배열, 리스트, 트리, 그래프, 해시테이블, 덱 등 다양한 저장방법이 있다.
스택 (stack)
- 데이터 삽입과 제거: 스택은 후입선출(LIFO, Last-In-First-Out) 방식을 따른다. 새로운 데이터는 스택의 맨 위에 삽입되고, 제거할 때도 맨 위에서부터 제거된다.
- 활용 예시: 함수 호출 스택, 뒤로 가기 버튼의 동작, 재귀 함수 호출 등에 사용된다.
큐 (queue)
- 데이터 삽입과 제거: 큐는 선입선출(FIFO, First-In-First-Out) 방식을 따른다. 새로운 데이터는 큐의 뒤에 삽입되고, 제거할 때는 가장 앞에서부터 제거된다. 이것은 데이터를 큐에 삽입한 순서대로 처리됨을 의미한다.
- 활용 예시: 대기열 관리, 작업 스케줄링, 네트워크 패킷 처리 등에 사용된다.
덱 (deque)
덱 (deque, Double-ended queue) 는 영어에서 알 수 있듯이 스택과 큐를 모두 제공하는 기능을 갖고 있다.
- 양쪽에서 데이터 삽입 및 제거: 덱은 데이터를 앞과 뒤 양쪽에서 삽입하고 제거할 수 있다. 이것은 데이터를 스택처럼 LIFO(후입선출) 방식으로 또는 큐처럼 FIFO(선입선출) 방식으로 처리할 수 있도록 한다.
- 다양한 용도로 활용: 덱은 데이터를 양쪽에서 조작할 수 있으므로 다양한 응용 분야에 유용하게 사용된다. 예를 들어, 스택과 큐의 기능이 모두 필요한 상황에서 덱을 사용할 수 있다.
'CS > Data' 카테고리의 다른 글
(데이터 표현) JSON과 XML (0) | 2023.05.08 |
---|