- 물건을 쌓아 올리듯 자료를 쌓아 올린 형태의 자료구조
- 스택에 저장된 자료는 선형 구조를 갖는다
- 선형 구조 : 자료 간의 관계가 1대1의 관계를 갖는다
- 비선형 구조 : 자료 간의 관계가 1대N의 관계를 갖는다
- 스택에 자료를 삽입하거나 스택에서 자료를 꺼낼 수 있다
- 마지막에 삽인한 자료를 가장 먼저 꺼낸다.
Stack<Type> stack = new Stack<>();- push()
- 스택에 자료를 저장한다.
- pop()
- 스택에서 자료를 꺼낸다.
- 저장된 자료의 역순으로 꺼낸다.
- isEmpty()
- 스택이 비어있는지 확인
- size()
- 현재 스택의 길이를 반환
- 왼쪽 괄호를 만나면 스택에 삽입, 오른쪽 괄호를 만나면 스택에서 top 원소를 빼서 괄호의 짝이 맞는지 검사, 검사 결과가 틀리면 잘못된 괄호열, 또한 마지막 괄호까지 조사했는데 스택이 비어있지 않으면 잘못된 괄호열
- 프로그램에서 함수 호출과 복귀에 따른 수행 순서를 관리
- 함수 실행 역시도 가장 마지막에 호출된 함수를 가장 먼저 실행하기 때문에 스택 구조와 동일
- 스택과 마찬가지로 삽입과 삭제의 위치가 제한적인 구조
- 큐에 저장된 자료는 선형 구조를 갖는다
- 큐에 삽인한 순서대로 원소가 저장되어, 가장 먼저 삽입된 원소가 가장 먼저 삭제된다.
LinkedList 클래스를 Queue 인터페이스의 구현체로 많이 사용
Queue<Type> queue = new LinkedList<>();- offer()
- 큐에 자료를 저장한다.
- poll()
- 큐에서 자료를 꺼낸다.
- isEmpty()
- 큐가 비어있는지 확인
- size()
- 현재 큐의 길이를 반환