스택은 자료를 표현하고 처리하는 방법인데 입구와 출구가 하나밖에 없는 상태이기 때문에
택배 상하차와 같이 가장 나중에 들어온 데이터가 가장 먼저 나온다.
빈 스택이 있다고 가정하고,
push(1) --> 1 --> 맨 처음 1을 삽입한다.
push(2) --> 1 2 --> 2를 삽입한다.
push(7) --> 1 2 7 --> 7을 삽입한다.
pop() --> 1 2 --> 가장 마지막에 들어간 7이 나간다.
push(4) --> 1 2 4 --> 4를 삽입한다.
pop() --> 1 2 --> 가장 마지막에 들어간 4가 나간다.
[예제]
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> s;
s.push(7);
s.push(5);
s.push(4);
s.pop();
s.push(6);
s.pop();
while(!s.empty()) {
cout << s.top() << ' ';
s.pop();
}
}
해당 소스코드는 C++로 작성한 코드이다.
스택을 사용하기 위해 헤더에 stack 라이브러리를 정의해준 뒤, 메인코드에서 스택을 정의한다.
push는 값을 넣는 방법, pop은 값을 빼내는 방법이므로 해당 코드의 순서는 아래와 같다.
7 --> 7 5 --> 7 5 4 --> 7 5 --> 7 5 6 --> 7 5
최종적으로 출력 시에 빈 스택이 될 때까지 top() 함수를 통해 가장 마지막에 들어간 데이터가
출력되도록 한 후 pop() 하여 해당 데이터를 빼는 과정을 반복한다.
[결과]
출처
https://blog.naver.com/ndb796/221230937978
'알고리즘 > 나동빈 실전 알고리즘' 카테고리의 다른 글
너비 우선 탐색(BFS; Breadth-first Search) (0) | 2021.07.21 |
---|---|
큐(Queue) (0) | 2021.07.21 |
계수 정렬(Counting Sort) (0) | 2021.07.20 |
힙정렬(Heap Sort) (0) | 2021.07.20 |
병합정렬(Merge Sort) (0) | 2021.07.20 |