안녕하세요, 여행벌입니다.
오늘은 자료구조 '스택' 과 C++ STL 스택 라이브러리를 이용하는 방법에 대해 다뤄보겠습니다.
1. 스택(Stack)
스택은 LIFO( Last In First Out ) 형식의 자료 구조로, 한쪽 끝에서만 자료를 넣고 뺄 수 있습니다.
즉, 마지막에 들어온 원소가 제일 먼저 나갈 수 있는 자료 구조입니다.
위의 그림과 같이, 스택의 Top 부분에서만 Push 와 Pop이 이뤄질 수 있습니다.
2. C++ STL 스택 라이브러리 기본 명령어
선언
- stack<자료형> 변수명 : 선언한 자료형 변수들을 담는 Stack을 선언.
ex) stack<int> s : int형 변수들을 담는 s라는 이름의 stack을 선언.
추가 및 삭제
- push(element) : top에 원소를 추가
- pop() : top에 있는 원소를 삭제
서칭
- top() : top(스택의 처음이 아닌 가장 끝)에 있는 원소를 반환
기타
- empty() : 스택이 비어있으면 true 아니면 false를 반환
- size() : 스택 사이즈를 반환
더 많은 함수들이 있지만, 위의 기본 명령어들만 잘 익히면 충분히 자료구조 Stack을 활용할 수 있습니다.
그럼 다음 예제를 통해 더 공부해볼까요?
#include<iostream>
#include<stack>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
stack<int> s; // int 형은 담는 s라는 이름의 stack 선언
for (int i = 1; i <= 10; i++)
s.push(i); // 1 ~ 10 까지 stack 에 담는다.
for (int i = 1; i <= 10; i++) {
cout << "현재 stack의 top : " << s.top() << '\n';
s.pop();
}
}
1 부터 10까지 차례대로 Stack에 담고 Pop 을 10번 시행해보겠습니다.
10(Top) |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
위의 그림과 같이 스택의 아래에서부터 Top까지 1 ~ 10 이 Push 되고, 이를 차례대로 Pop 한다면,
현재 stack의 top : 10
현재 stack의 top : 9
현재 stack의 top : 8
현재 stack의 top : 7
현재 stack의 top : 6
현재 stack의 top : 5
현재 stack의 top : 4
현재 stack의 top : 3
현재 stack의 top : 2
현재 stack의 top : 1
다음과 같이 출력될 것입니다!
오늘은 여기서 포스팅을 마치도록 하겠습니다.
자료구조 스택에 대한 기본적인 설명과 C++ STL Stack Library 기본 명령어를 정리해보았습니다.
'Computer Language > C , C++' 카테고리의 다른 글
[C++] STL String Library 기본 명령어 정리(2) (0) | 2019.10.04 |
---|---|
[C++] STL String Library 기본 명령어 정리(1) (0) | 2019.10.03 |
[C++] 수행 시간 측정하기, '시간 초 재기' (0) | 2019.09.18 |
[C++] 덱 자료구조 & STL Deque Library 기본 명령어 정리 (0) | 2019.09.17 |
[C/C++] 삼항 연산자 내용 정리 (0) | 2019.08.01 |