본문 바로가기
STL

스택(Stack)

by 홍code 2022. 3. 11.

Stack의 사전적 정의는 '쌓다', '더미'이다. 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료구조라고 할 수 있다. Stack은 나중에 들어간 것이 먼저 나오게 되는 (Last In First Out)의 형태를 띠는 자료구조이다. 예를 들어 프링글스 과자를 생각해보자. 과자를 만들 때 과자를 위에서 집어넣었다면 우리가 젤 처음 먹는 과자는 제일 나중에 들어갔던 과자 일 것이다.

 

  1. LIFO(Last In First Out) 구조
  2. push(원소 삽입), pop(원소 삭제), Top(꼭대기 원소 확인) 시간 복잡도 O(1)
  3. Stack은 C++ 표준 라이브러리(Standard Template Library)에 있는 정의 되어 있어 필요할 때마다 만들어 사용하지 않고 include 하여 사용하면 된다.

어떻게 사용하는가?

#include <stack> // stack이 포함된 헤더파일

stack<int> s; // int형 스택 선언, 다른 자료형을 넣어도 됨

s.push(x); // 스택에 데이터 x를 입력한다.

s.pop(); //스택의 데이터를 삭제한다.

s.top(); //스택의 꼭대기 데이터를 반환한다.

s.empty(); //스택이 비어 있는지 판단한다.

s.size(); //스택안에 있는 원소의 갯수를 반환

관련 문제

'STL' 카테고리의 다른 글

그래프(Graph)  (0) 2022.03.11
벡터(Vector)  (0) 2022.03.11
덱(Deque)  (0) 2022.03.11
큐(Queue)  (0) 2022.03.11

댓글