[알고리즘]스택 구현(백준 10828문제)
스택이란?
스택이란 가장 밑부분부터 차례대로 쌓아 올라가는 구조이다.
스택은 한 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형 구조(Last In First Out)이다.
스택의 자료형
- push() : 정수 X를 스택에 넣는 연산
- pop() : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력
- top() : 스택의 가장 위에 있는 정수를 출력
- empty() : 스택이 비어있으면 1, 아니면 0을 출력
- size() : 스택에 들어있는 정수의 개수를 출력
구현코드
class Stack {
int last = 0;
int arr[10000];
public:
void push(int data) {
arr[last++] = data;
}
int top() {
if (last == 0) return -1;
return arr[last-1];
}
int empty() {
if (last == 0) return 1;
else return 0;
}
int size() {
return last;
}
int pop() {
if (last == 0) return -1;
int j = arr[last - 1];
arr[last - 1] = NULL;
last = last - 1;
return j;
}
};