본문 바로가기

cs(with 매일메일)

[251027월] 자료구조 스택에 대해서 설명해주세요

스택(Stack) : 후입선출이라는 개념을 가진 자료구조이다. 

삭제(pop)은 최상단에서만 이뤄진다. 

비어있는 스택에서 추출을 시도할 경우 > 스택 언더플로우

꽉차있는 스택에서 추가를 시도할 셩우 > 스택 오버플로우

대표적 활용 사례 : 스택 메모리, 브라우저 뒤로 가기, 언두 기능, 수식 괄호 검사 등

 

자바에서 스택 활용

Stack이라는 클래스가 있지만, Dequq 인터페이스 구현체를 사용하는것이 권장

왜? Stack클래스는 내부적으로 Vector를 상속받음. 이는 인덱스를 통한 접근, 삭제가 가능해져거 후입선출의 개념이 사라짐

왜? 백터 메소드들은 synchronized로 구현되어 멀티 스레드 환경에서는 이점이 있으나, 단일 스레드에서는 불필요한 동기화로 성능 낮음.