큐의 기본정리
- FIFO 구조 먼저 들어온 사람이 먼저 빠져 나간다. > 음식점을 줄을 생각하면 좋다.
- 큐는 멀티 태스킹 작업에 스케쥴링 작업에 많이 쓰임
import java.util.ArrayList;
public class MyQueue<T> {
private ArrayList<T> queue = new ArrayList<>();
public void enqueue(T item) {
queue.add(item);
}
public T dequeue() {
if(queue.isEmpty()) return null;
return queue.remove(0);
}
public boolean isEmpty() {
return queue.isEmpty();
}
public static void main(String[] args) {
MyQueue<Integer> queue = new MyQueue<>();
queue.enqueue(1);
queue.enqueue(2);
queue.dequeue();
}
}
스택 기본 정리
- LIFO 형식으로 마지막에 들어온 자료가 가장 먼저 나간다.
- 데이터 넣기 : push / 데이터 빼기 : pop
- 장점 : 구조가 단순해서 구현이 쉬움, 읽기 속도가 빠르다
- 단점 : 데이터의 최대 개수를 미리 정해야함, 저장공간의 낭비가 있을 수 있다.
import java.util.ArrayList;
import java.util.List;
public class MyStack<T> {
List<T> stack = new ArrayList<>();
public void push(T data) {
stack.add(data);
}
public T pop() {
if(stack.isEmpty()) {
return null;
}
return stack.remove(stack.size() - 1);
}
}