알고리즘/나동빈 실전 알고리즘

스택(Stack)

개발윗미 2021. 7. 21. 12:20

스택은 자료를 표현하고 처리하는 방법인데 입구와 출구가 하나밖에 없는 상태이기 때문에

 

택배 상하차와 같이 가장 나중에 들어온 데이터가 가장 먼저 나온다.

 

빈 스택이 있다고 가정하고,

 

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() 하여 해당 데이터를 빼는 과정을 반복한다.

 

[결과]

 

스택(Stack) 결과


출처

https://blog.naver.com/ndb796/221230937978

 

13. 스택(Stack)

스택(Stack)과 큐(Queue)는 컴퓨터 공학에서 가장 기본이 되는 자료구조입니다. 말 그대로 자료를 표현하...

blog.naver.com

 

'알고리즘 > 나동빈 실전 알고리즘' 카테고리의 다른 글

너비 우선 탐색(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