STL Stack

Lellow_Mellow·2022년 9월 2일
0
post-thumbnail

Stack

stack쌓다, 더미라는 사전적 정의를 가지고 있는 것처럼, 데이터를 쌓아 올리는 하나의 자료 구조이다. 가장 마지막에 들어간 데이터가 가장 처음으로 빠져나오는 LIFO(Last In First Out)의 대표적인 구조이다.

C++ 표준 라이브러리 (STL : Standard Template Library)에 이미 stack이 정의되어있어 이를 include하여 사용할 수 있다.

Stack의 특징

  • LIFO 구조
  • 인터럽트 처리, 수식의 계산, 서브루틴의 복귀번지 저장 등에 사용
  • DFS(깊이 우선 탐색)에서 사용
  • 재귀함수를 호출할 때 사용

Stack의 사용법

vector 선언 및 초기화

stack를 사용하기 위해서는 아래와 같이 header 파일을 include 해준다.

#include <stack>

기본적인 stack의 선언 및 초기화는 아래와 같다.

// 기본적인 int형 stack 선언
stack<int> s;

Stack 데이터 삽입 (추가)

.push를 이용하여 stack에 데이터를 삽입할 수 있다.

// stack.push(element);
s.push(1);
s.push(2);
s.push(3);

Stack 데이터 삭제 (제거)

.pop를 이용하여 stack에 데이터를 제거할 수 있다.

// stack.pop();
s.pop();

Stack과 관련된 Method들

stack과 관련된 기타 mothod들은 아래와 같다.

// stack size 반환
s.size();

// stack이 비었는지 확인 (비어있으면 True, element가 존재하면 False)
s.empty();

// stack s1과 s2의 element를 서로 바꾸기
s1.swap(s2);
profile
festina lenta

0개의 댓글