[c++] 스택 구현과 활용
C++에서 스택이란 후입선출(LIFO)을 따르는 자료 구조로, 데이터가 쌓이고(pop) 제거되는(push) 구조를 갖고 있습니다. 이러한 스택을 C++로 구현하고 활용하는 방법에 대해 알아보겠습니다.
C++에서의 스택 구현
#include <iostream>
#include <stack>
int main() {
std::stack<int> s;
s.push(1); // 스택에 데이터 추가
s.push(2);
s.push(3);
std::cout << "스택의 맨 위: " << s.top() << std::endl; // 맨 위의 데이터 확인
s.pop(); // 맨 위의 데이터 제거
std::cout << "스택의 크기: " << s.size() << std::endl; // 스택의 크기 확인
return 0;
}
위 코드는 <stack>
헤더 파일을 사용하여 간단한 정수형 스택을 구현하고 활용하는 예시입니다. push()
함수를 사용하여 데이터를 스택에 추가하고, top()
함수를 통해 맨 위의 데이터를 확인하고, pop()
함수로 맨 위의 데이터를 제거할 수 있습니다.
C++에서의 스택 활용
C++의 스택은 자료구조나 알고리즘에서 유용하게 활용될 수 있습니다. 예를 들어, 재귀 알고리즘에서 호출된 함수의 정보를 저장하거나, 깊이 우선 탐색(DFS)을 수행할 때 방문한 노드 정보를 저장하는 용도 등으로 활용될 수 있습니다.
또한, C++의 STL(Standard Template Library)에서 제공하는 스택은 표준 라이브러리로 구현되어 있어, 편리하게 활용할 수 있습니다.
결론
C++에서의 스택은 후입선출 구조를 따르는 자료 구조로, <stack>
라이브러리를 활용하여 손쉽게 구현하고 활용할 수 있습니다. 이를 효율적으로 활용하여 알고리즘 및 자료구조 등 다양한 문제에 적용할 수 있으며, 표준 라이브러리를 활용하여 보다 안정적이고 효율적인 코드를 작성할 수 있습니다.
참고문헌: cplusplus.com - stack
이상으로 C++에서의 스택 구현과 활용에 대해 알아보았습니다.