스택(Stack)이란 무엇일까?
이번 포스팅에서는 스택(Stack)이 무엇인지에 대해 간단하게 정리해보고자 합니다 :)
스택(Stack)이란?
스택이란 말 그대로 쌓아놓은 더미
를 뜻합니다. 스택은 프링글스 통을 떠올리면 쉽게 이해할 수 있는데요. 프링글스 통에 든 과자 내용물은 제조공정 상에서 주입이 될 것이고, 처음에 담기는 과자는 가장 아래쪽에 위치하게 될 것입니다. 결국 프링글스 과자를 구입하여 뜯은 뒤 가장 먼저 먹게되는 과자 조각은 가장 마지막에 담은 과자가 되는 것입니다. 즉 입구와 출구가 같은 자료구조인 것이죠.
스택(Stack)의 특징
후입선출
스택의 특징으로는 후입선출(LIFO: Last In First Out) 방식이라는 점을 꼽을 수 있는데요. 후입선출이란 말 그대로 최근에 들어온 데이터가 가장 먼저 나가는 것을 뜻합니다.
스택(Stack)의 연산
삽입 연산 - Push
스택에 데이터를 넣기 위하여 수행하는 연산을 Push 연산 이라고 합니다. Push 연산은 스택이 꽉 차기 전까지 수행되며, 스택이 가득차면 수행을 멈추게 됩니다.
- Stack 영역의 메모리가 지정된 범위를 넘어갈 때 발생하는 것 -> Stack Overflow
삭제 연산 - Pop
Push 연산과 반대로 스택에 있는 데이터를 추출하기 위하여 수행하는 연산을 Pop 연산이라고 합니다. Pop 연산은 스택이 비어있지 않을 때 까지 연산을 수행하며, 스택이 비어있다면 수행을 멈추게 됩니다.
스택을 주로 사용하는 곳
- 웹 브라우저의 뒤로가기
- 프로그램의 실행 취소(Undo)
- 문자열 뒤집기
- 수식 괄호 검사
- JVM 메모리
위 뿐만 아니라 Stack은 다양한 곳에 개념을 적용하여 사용되고 있습니다.
🔔포스팅 공지
개인 공부 기록용 블로그 입니다.
잘못된 부분이 있을 시 메일이나 댓글로 지적해주시면 감사드리겠습니다 :)
댓글남기기