개발자의 기본 소양/DATA STRUCTURE
Queue & Stack
배준형
2022. 12. 4. 18:06
Queue
먼저 들어간 자료가 먼저 나오는 자료구조이다. FIFO(First In First Out, 선입선출) 또는 LILO(Last In Last Out, 후입후출) 라는 구조를 갖는다.
Method | Description |
add(E e) | Queue에 객체를 추가한다. Queue의 남아 있는 space가 없을 경우 exception을 throw한다. |
element() | Queue에 가장 먼저 들어간 객체를 return한다. |
offer(E e) | Queue에 객체를 추가한다. 이때는 exception을 발생시키지 않고 성공 여부에 대해 return한다. |
peek() | Queue에 가장 먼저 들어간 객체를 제거하지 않고 확인한다. |
poll() | Queue에 가장 먼저 들어간 객체를 제거하고 해당 객체를 return한다. 이때 queue가 비어 있다면 null을 return한다. |
remove() | Queue에 가장 먼저 들어간 객체를 제거하고 해당 객체를 return한다. 이때 queue가 비어있다면 exception을 throw한다. |
Stack
먼저 들어간 자료가 나중에 나오는 자료구조이다.
Method | Description |
empty() | Stack이 비어있다면 true, 아니면 false를 반환한다. |
peek() | Stack에서 제거하지 않고 스택의 최상단(맨 위)에 있는 객체를 확인한다. |
pop() | Stack의 최상단에 있는 객체를 제거하고 해당 객체를 return한다. |
push(E item) | Stack에 최상단 항목으로 삽입한다. |
serach(Object o) | Object를 Stack에서 찾는 method로 최상단 객체를 1로 하여(1-based-position) 위치(position)를 찾아주며, 객체가 없다면 -1을 return한다. |
Deque
양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다. Deque은 Stack처럼 쓰일 수도 있고, Queue처럼 쓰일 수도 있으며, Stack과 Queue의 기능을 합친 것처럼 사용할 수도 있다.