오늘의 질문
자료구조 스택에 대해서 설명해주세요.

Stack (스택)

스택은 후입선출 개념을 가진 선형 자료구조이다. 스택 자료구조에서 삭제(pop) 는 가장 최상단(top) 에서만 이루어진다. 비어있는 스택에서 값을 추출하려고 시도하는 경우를 스택 언더플로우 라고 하며, 스택이 넘치는 경우를 스택 오버플로우 라고 한다. 대표적인 활용 사례는 스택 메모리, 브라우저 뒤로가기 기능, 언두 기능, 수식 괄호 검사 등이 있다.


Deque (데크)

다만 자바에서는 Stack 보다는 Deque 를 사용하는 것이 권장된다. 왜냐하면 스택 내부적으로 Vector 를 상속받고 있기 때문인데, Vector 를 상속받은 스택은 인덱스를 통한 접근, 삽입, 제거 등 가능해서 후입선출 특징에 맞지 않게 되기 때문에 개발자의 실수가 발생할 여지가 있다.

Vector (벡터) ?

ArrayList 와 동일한 내부구조를 가진 일종의 동적 배열이며, 크기가 커지거나 줄어들 수 있다.


🔖 참고자료

매일메일