본문 바로가기

자료구조

Stack

스택은 후입선출(LIFO, Last In, First Out) 원칙을 따르는 선형 자료구조로, 가장 마지막에 추가된 요소가 가장 먼저 제거되는 구조입니다. 스택은 주로 재귀 함수 호출, 수식의 후위 표기법 계산, 웹 브라우저의 뒤로가기 기능 등 다양한 응용에서 사용됩니다.

 

STL에서의 stack

 

std::stack은 C++ 표준 라이브러리(STL)에서 제공하는 컨테이너 어댑터(Container Adapter) 클래스로, 스택(stack) 자료 구조를 구현하는 데 사용됩니다. 스택은 후입선출(LIFO, Last-In-First-Out) 원칙을 따르는 자료 구조로, 요소를 스택의 맨 위에 삽입하고 제거합니다. **std::stack**은 기본 컨테이너(일반적으로 std::deque)를 사용하여 스택을 구현하며 다음과 같은 주요 특징을 가지고 있습니다.

  1. 후입선출(LIFO)
    • 스택은 가장 최근에 삽입된 요소가 가장 먼저 제거되는 자료 구조를 나타냅니다. 이는 일반적으로 "푸시(push)"와 "팝(pop)" 연산을 사용하여 데이터를 처리하는 데 유용합니다.
  2. 기본 컨테이너
    • std::stack은 스택의 기능을 제공하며 내부적으로 기본 컨테이너를 사용하여 데이터를 저장합니다. 기본 컨테이너로는 std::deque가 주로 사용되지만 사용자가 다른 컨테이너를 선택할 수도 있습니다.
  3. 삽입 및 제거 연산
    • std::stack 은 push() 메서드를 사용하여 요소를 스택에 추가하고 pop() 메서드를 사용하여 맨 위의 요소를 제거합니다.
  4. 맨 위 요소 접근
    • top() 메서드를 사용하여 스택의 맨 위에 있는 요소에 접근할 수 있습니다.

**std::stack**은 주로 스택을 사용하는 간단한 상황에서 편리하게 사용할 수 있으며, 스택 자료 구조의 간단한 인터페이스를 제공합니다. 예를 들어, 함수 호출 스택, 역추적(traceback), 백트래킹(backtracking) 및 임시 저장소 등의 상황에서 사용될 수 있습니다.

'자료구조' 카테고리의 다른 글

Set  (0) 2024.07.17
Queue  (0) 2024.07.16
Linked List - 순차 컨테이너  (0) 2024.07.16
Vector - 순차 컨테이너  (0) 2024.07.16
Array - 순차 컨테이너  (0) 2024.07.16