여러가지/기타
스택(STACK) & 큐(QUEUE) - 자료구조와 차이점, 비교, 활용방법 (LIFO,FIFO)
포스트it
2021. 5. 10. 17:12
728x90
반응형
스택 (Stack)
- 메모리 안에 데이터들을 효율적으로 다루기 위해 만들어진 데이터 참조 방식
LIFO (Last In First Out)
- 한 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조, 제일 마지막에 들어온 데이터가 제일 빨리 나가는 방식
스택은 쌓아 올린다는 것을 의미한다.
따라서 스택 자료구조라는 것은 책을 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. (위 그림 참조)
스택에서 삽입하는 연산을 'push' , 삭제하는 연산을 'pop'이라고 한다.
스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징을 가진다.
스택의 활용 예시 (후입선출)
- 웹 브라우저 방문기록 (뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여준다.
- 역순 문자열 만들기 : 가장 나중에 입력된 문자부터 출력한다.
- 실행 취소 (undo) : 가장 나중에 실행된 것부터 실행을 취소한다.
- 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)
(Queue)
- 메모리 안에 데이터들을 효율적으로 다루기 위해 만들어진 데이터 참조 방식
IFO (First In First Out)
- 양 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조, 제일 처음에 들어온 데이터가 제일 빨리 나가는 방식
큐(Queue)는 줄을 서서 기다리는 것이라고 생각하시면 된다.
따라서 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 창구에서 처리하는 것과 같이
순서대로 진행하는 자료구조를 말한다. (위 그림 참조)
큐(Queue)에서 이루어지는 삽입연산을 인큐(enQueue)
프론트에서 이루어지는 삭제연산을 디큐(dnQueue)라고 한다.
큐의 활용 예시 (선입선출)
- 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
- 은행 업무
- 콜센터 고객 대기시간
- 캐시(Cache) 구현
728x90
반응형