기본적인 자료구조 중 하나로 구조물을 쌓는 느낌의 자료 구조이다. 예를 들어, 상자를 쌓는 일로 설명할 수가 있다. 상자는 우리가 저장할 자료라 했을때 저장할때는 한칸씩 올리고 제거할때는 제일 위에서부터 하나씩 제거하는식으로 구현된다.
이 과정에서 가장 나중에 들어온 자료가 가장 먼저 제거되기 때문에 흔히 LIFO(Last in First Out)라 한다.
- Push(가장 위에 자료 저장)
- Pop(가장 위의 자료 제거)
- Peek(맨위의 자료 반환, 제거는 안함)
- IsEmpty(스택이 비어있는지 검사)
- Stack 의 크기를 초과하면 Overflow, Stack이 비어있는데 Pop 할 경우 Underflow
일반적으로 역순문자열, 괄호검사, 수식계산, 미로찾기(길찾기) 등의 알고리즘에서 사용할 경우 효율적으로 구현할 수 있다.
import java.util.*;
public class test {
public static void main(String[] args){
Stack<Integer> stack = new Stack<>();
stack.push(3);
stack.push(2);
stack.pop();
stack.peek();
stack.isEmpty();
}
}
'Data Structure' 카테고리의 다른 글
List/ArrayList/LinkedList (0) | 2019.07.01 |
---|---|
구조체 (0) | 2019.06.14 |
추상자료형 (0) | 2019.06.12 |
1) 자료 구조란 (0) | 2019.06.02 |