: 구멍이 한쪽에만 뚫려있는 통에 데이터를 넣는 자료구조.
Stack의 특징
1. 먼저 들어간 자료가 나중에 나온다. Last In First Out (LIFO) 구조
2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 한다.
3. 인터럽트 처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰인다.
4. 그래프의 깊이 우선 탐색(DFS)에서 사용된다.
5. 재귀적(Recursion) 함수를 호출 할 떄 사용된다.
(후첨)
#include <stack> //including header file
stack<int> s; //int형 스택 선언
stack<char> s; //char형 스택 선언
s.push(_element_) //stack에 원소 추가
s.pop() //stack의 가장 위쪽에 있는 원소 제거
s.top() //stack의 가장 상단의 값 출력
s.size(); //stack의 크기 출력
s.empty(); //stack이 비어있는지 확인 (비어있다면 true, 원소가 있다면 false)
s1.swap(s2); //s2와 요소 바꾸기