-
스택 (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; }
'자료구조&알고리즘' 카테고리의 다른 글
[알고리즘] 너비 우선 탐색 (Breadth First Search, BFS) (0) 2023.10.24 [자료구조] 큐 (Queue) (2) 2023.10.23 [알고리즘] 계수 정렬 (Counting Sort) (1) 2023.10.23 [알고리즘] 힙 정렬 (Heap Sort) (1) 2023.10.22 [알고리즘] C++ STL sort() 함수 (0) 2023.10.15 댓글