스택은 후입선출 데이터 구조입니다. 스택은 표현식, 호출 및 재귀 전략 등을 평가하기 위해 다른 영역에서 사용됩니다. 스택에는 몇 가지 기본 작업이 있습니다. 여기에서 스택의 이러한 작업을 보고 스택 ADT를 사용하는 한 가지 예를 볼 것입니다.
ADT(추상 데이터 유형)는 특정 종류의 데이터 유형으로, 그 동작은 값 집합과 연산 집합에 의해 정의됩니다. 이러한 데이터 유형을 사용할 수 있으므로 "추상"이라는 키워드가 사용되며 다른 작업을 수행할 수 있습니다. 그러나 이러한 작업이 작동하는 방식은 사용자에게 완전히 숨겨져 있습니다. ADT는 원시 데이터 유형으로 구성되어 있지만 연산 논리가 숨겨져 있습니다.
이것은 스택 ADT의 몇 가지 작업 또는 기능입니다.
- isFull(), 스택이 가득 찼는지 여부를 확인하는 데 사용됩니다.
- isEmpry(), 스택이 비어 있는지 여부를 확인하는 데 사용됩니다.
- push(x), x를 스택에 푸시하는 데 사용됩니다.
- pop(), 스택의 맨 위에서 하나의 요소를 삭제하는 데 사용됩니다.
- peek(), 스택의 최상위 요소를 가져오는 데 사용됩니다.
- size(), 이 함수는 스택에 있는 요소의 수를 가져오는 데 사용됩니다.
예시
#include<iostream> #include<stack> using namespace std; main(){ stack<int> stk; if(stk.empty()){ cout << "Stack is empty" << endl; } else { cout << "Stack is not empty" << endl; } //insert elements into stack stk.push(10); stk.push(20); stk.push(30); stk.push(40); stk.push(50); cout << "Size of the stack: " << stk.size() << endl; //pop and dispay elements while(!stk.empty()) { int item = stk.top(); // same as peek operation stk.pop(); cout << item << " "; } }
출력
Stack is empty Size of the stack: 5 50 40 30 20 10