: 자료 구조의 한 종류로 Last In First Out, LIFO "후입 선출" 구조
데이터가 입력된 순서의 역순일때 사용한다.
[기본 연산]
: 먼저 들어온 데이터가 먼저 나가는 First In First Out, FIFO "선입 선출" 구조
입력 순서대로 데이터 처리시에 사용한다. ex) 프린터 출력 대기열
front : 앞쪽
rear : 뒤쪽
dequeue : 데이터 꺼내기
enqueue : 데이터 추가
: Double-Ended Queue의 줄임말로 큐의 양쪽에 데이터를 넣고 뺄 수 있는 형태의 자료구조
하나의 자료구조에 큐와 스택을 합쳐 놓은 형태.
Deque의 앞쪽으로 데이터를 넣고 뒤쪽에서 빼면 => Queue
Deque의 앞쪽에 데이터를 넣고 앞쪽에서 빼면 => Stack
deque.addFirst(); // Deque의 앞쪽에 데이터를 삽입, 용량 초과시 Exception
deque.offerFirst(); // Deque의 앞쪽에 데이터를 삽입 후 true, 용량 초과시 false
deque.addLast(); // Deque의 뒤쪽에 데이터를 삽입, 용량 초과시 Exception
deque.add(); // addLast()와 동일
deque.offerLast(); //Deque의 뒤쪽에 데이터를 삽입 후 true, 용량 초과시 false
deque.offer(); // offerLast()와 동일
deque.push(); // addFirst()와 동일
deque.pop(); // removeFirst()와 동일
deque.removeFirst(); // Deque의 앞에서 제거, 비어있으면 예외
deque.remove(); // removeFirst()와 동일
deque.poll(); // Deque의 앞에서 제거, 비어있으면 null 리턴
deque.pollFirst(); // poll()과 동일
deque.removeLast(); // Deque의 뒤에서 제거, 비어있으면 예외
deque.pollLast(); // Deque의 뒤에서 제거, 비어있으면 null 리턴
// Deque의 앞쪽에서 찾아서 첫 번째 데이터를 삭제
deque.removeFirstOccurrence(Object o);
// Deque의 뒤쪽에서 찾아서 첫 번째 데이터를 삭제
deque.removeLastOccurrence(Object o);
// removeFirstOccurrence() 메소드와 동일
deque.remove(Object o);
deque.getFirst(); // 첫 번째 엘리먼트를 확인, 비어있으면 예외
deque.peekFirst(); // 첫 번째 엘리먼트를 확인, 비어있으면 null 리턴
deque.peek();// peekFirst()와 동일
deque.getLast(); // 마지막 엘리먼트를 확인, 비어있으면 예외
deque.peekLast();// 마지막 엘리먼트를 확인, 비어있으면 null 리턴
deque.contain(Object o); // Object 인자와 동일한 엘리먼트가 포함되어 있는지 확인
deque.size(); // Deque에 들어있는 엘리먼트의 개수