728x90
반응형
스택 (Stack)
- 메모리 안에 데이터들을 효율적으로 다루기 위해 만들어진 데이터 참조 방식
LIFO (Last In First Out)
- 한 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조, 제일 마지막에 들어온 데이터가 제일 빨리 나가는 방식
스택은 쌓아 올린다는 것을 의미한다.
따라서 스택 자료구조라는 것은 책을 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. (위 그림 참조)
스택에서 삽입하는 연산을 'push' , 삭제하는 연산을 'pop'이라고 한다.
스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다는 구조적 특징을 가진다.
스택의 활용 예시 (후입선출)
- 웹 브라우저 방문기록 (뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여준다.
- 역순 문자열 만들기 : 가장 나중에 입력된 문자부터 출력한다.
- 실행 취소 (undo) : 가장 나중에 실행된 것부터 실행을 취소한다.
- 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)
(Queue)
- 메모리 안에 데이터들을 효율적으로 다루기 위해 만들어진 데이터 참조 방식
IFO (First In First Out)
- 양 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조, 제일 처음에 들어온 데이터가 제일 빨리 나가는 방식
큐(Queue)는 줄을 서서 기다리는 것이라고 생각하시면 된다.
따라서 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 창구에서 처리하는 것과 같이
순서대로 진행하는 자료구조를 말한다. (위 그림 참조)
큐(Queue)에서 이루어지는 삽입연산을 인큐(enQueue)
프론트에서 이루어지는 삭제연산을 디큐(dnQueue)라고 한다.
큐의 활용 예시 (선입선출)
- 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
- 은행 업무
- 콜센터 고객 대기시간
- 캐시(Cache) 구현
728x90
반응형
'여러가지 > 기타' 카테고리의 다른 글
[데이터 단위] 초간단 데이터 표현 가능 범위표 (1bit/8bit/16bit/32bit/64bit) (0) | 2021.05.12 |
---|---|
[데이터 단위] 데이터 표기법(파일의 크기) 및 kB 와 KiB의 차이 (bit, Byte, kB, MB, GB, TB) (0) | 2021.05.11 |
[Visual Studio Code] 다중 커서, 여러줄 수정 및 선택 하는방법 (2) | 2021.03.16 |
[Visual Studio Code] Ubuntu에서 한글(폰트) 받침 깨짐 현상 // 분리 현상 해결방법 (2) | 2021.03.15 |
[Visual Studio Code] Ubuntu18.04 에서 한글 입력 안되는 현상 해결법 (0) | 2021.02.19 |
댓글