뭐라도 끄적이는 BLOG

04. 스택(Stack) 본문

기본이론/Datastructure

04. 스택(Stack)

Drawhale 2023. 6. 17. 08:53

영어 단어 stack은 동사로 '쌓다'라는 뜻이 있으며, 명사로는 '무더기[더미]'를 의미한다. 자료구조에서의 Stack도 이와 마찬가지로 자료를 쌓아두는 기능을 수행한다. 즉, Stack이라는 자료구조를 통해 여러 자료를 쌓아둘 수 있게 한다. Stack의 고유한 특성을 이야기할 때 자장 대표되는 단어로 LIFO(Last-In-First-Out)를 들 수 있다. 대게 '리포'라고 읽으며 "Last-In-First-Out"이라는 단어에서 알 수 있듯이, "가장 나중에 들어간 자료가 가장 먼저 나온다."라는 뜻이다. 이를 다른 말로 후입선출(後入先出)이라고도 한다.

Stack에서 자료의 추가 혹은 반환(꺼내는 것)은 스택의 끝에서만 가능하다. 여기서 말하는 Stack의 끝이란 스택의 제일 위(Top), 즉 가장 최근에 추가된 자료가 있는 곳을 말한다. 이러한 제약 사항으로 인해 기존의 리스트 자료구조와 구별되는 독특한 특성을 가진다. 리스트에서는 자료의 추가와 삭제가 리스트의 모든 위치에서 가능했던 반면 스택은 자료의 추가와 삭제가 스택의 제일 위(한쪽 끝)에서만 가능하다. 이러한 연산에서의 제약 사항은 자연스럽게 스택의 후입선출의 특성을 가지게 만든다.

후입선출의 특성을 지니는 현실 세계의 다양한 시스템들이 존재하는데 스택만이 이러한 시스템을 효율적으로 표현할 수 있다. 그뿐만 아니라 후입선출의 특성은 다양한 알고리즘에서 필수적인 요소로 사용된다. 이후 나올 트리(Tree)나 그래프(Graph)등 다른 복잡한 자료구조에서도 내부적으로 사용된다.

Push

스택에 새로운 자료를 추가하는 것을 푸시(Push)라고 한다.

stack push

Pop

스택에서 자료를 꺼내는 것을 팝(Pop)이라고 한다.

stack pop

Peek

스택에서 최상위 자료를 확인하는 작업을 대게 피크(Peek)라는 단어를 사용한다. 스택의 마지막 자료가 어떤것인지 알 수 있다는 점에서 같지만 pop과는 다르게 확인만 하고 꺼내진 않는다는 차이점이 있다.

peek

 

반응형

'기본이론 > Datastructure' 카테고리의 다른 글

06. 트리(Tree)  (0) 2023.06.17
05. 큐(Queue)  (0) 2023.06.17
03. 리스트(List)  (0) 2023.06.17
02. 배열 (Array)  (0) 2023.06.17
01. 자료구조의 정의  (0) 2023.06.17