자료구조?
데이터를 효율적으로 다룰 수 있는 방법
예) Stack, Queue, Tree, Graph
Stack
데이터(data)를 순서대로 쌓는 자료구조
1. 특징 : 후입선출
- 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근(LIFO(Last In First Out) 혹은 FILO(First In Last Out))
- 데이터를 넣는 것을 ‘PUSH’, 데이터를 꺼내는 것을 ‘POP’
- 한꺼번에 여러 개를 넣거나 뺄 수 없음
2. 명령어
Integer형 스택 선언
Stack<Integer> stack = new Stack<>();
push()
: 스택에 데이터를 추가
pop()
: 가장 나중에 추가된 데이터를 스택에서 삭제하고 삭제한 데이터를 리턴
3. Arraylist와 Stack
1) ArrayList로 Stack을 사용할 때 주의사항 추가 변형이 불가
2) Java의 배열로 Stack을 구현했을때 단점 최대 개수를 정해야 사용이 가능
Queue
줄을 서서 기다리다, 대기행렬
1. 특징 : 선입선출
- 먼저 들어간 데이터(data)가 먼저 나오는 FIFO(First In First Out) 혹은 LILO(Last In Last Out)
- Queue에 데이터를 넣는 것을 ‘enqueue’, 데이터를 꺼내는 것을 ‘dequeue’
- 한꺼번에 여러 개를 넣거나 뺄 수 없음
- 두 개의 입출력 방향
2. 명령어
int형 queue 선언
Queue<Integer> queue = new LinkedList<>();
데이터 넣기
queue.add();
데이터 빼기
queue.poll();
PREVIOUS[JAVA] 2의 거듭제곱인지 확인