자료구조&알고리즘

[자료구조] 스택 (Stack)

순늘봄 2023. 10. 23. 23:39

스택 (Stack)

스택은 "쌓다" 라는 의미를 가지고 있으며, 그 의미에 맞게 데이터를 차곡차곡 쌓아올린 형태의 자료구조이다. 아래와 같이 데이터가 순서대로 쌓이게 되고 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 구조를 가지고 있다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조이며 데이터를 삽입할 때는 push 연산을 사용하며 데이터를 꺼낼 때는 pop 연산을 사용한다. 이 때 꺼내지는 데이터는 가장 최근에 삽입한 자료부터 나오게 된다. 이는 LIFO (Last In First Out) 구조이다.

 

스택 연산: 

· s.top(): 스택의 가장 위 데이터를 반환

· s.pop(): 스택의 가장 위 데이터를 삭제

· s.push(): 데이터 삽입

· s.empty(): 스택이 비었다면 1 반환, 그렇지 않다면 0 반환

 

출처:  https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D

 

예시 코드:

#include <iostream>
#include <algorithm>
#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();
	}
	return 0;
}