대기열이란 무엇입니까? 쉽게 말해 줄을 서서 기다리는 것입니다.
보통 줄을 서면 들어온 순서대로 들어갑니다.
선입선출.
=> 선입선출(FIFO)
앞에 앞쪽존재하다 삭제 계산만 수행
대기열 끝 뒤쪽존재하다 끼워 넣다 계산만 수행합니다.
대기열을 단계별로 구축
삽입(5) – 삽입(2) – 삽입(3) – 삽입(7) – 삭제() – 삽입(1) – 삽입(4) – 삭제() 프로세스를 살펴보겠습니다.
삽입(5)
5
삽입(2)
5 2
삽입(3)
5 2 3
삽입(7)
5 2 3 7
삭제()
2 3 7
삽입(1)
2 3 7 1
삽입(4)
2 3 7 1 4
삭제()
3 7 1 4
=> 삽입된 순서대로 데이터가 쌓이고, 삭제된 순서대로 데이터가 내보내진다.
코드로 구현
Queue<Integer> q = new LinkedList<>();
// 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
q.offer(5);
q.offer(2);
q.offer(3);
q.offer(7);
q.poll();
q.offer(1);
q.offer(4);
q.poll();
while (!
q.isEmpty()) {
System.out.print(q.poll() + " ");
}
대기열 작업을 위한 기능
데이터 추가
– q.추가()
boolean add(E e);
– q.offer()
boolean offer(E e);
<共同点>
대기 중 끝에 값을 추가하다 성공 도시 참을 반환하다.
<区别>
대기열의 용량 제한으로 인해 더 추가할 수 없는 경우
q.추가(): 잘못된 상태 예외 세대
q.제안(): 거짓 반환
데이터 삭제
-q.remove()
E remove();
– q.poll()
E poll();
<共同点>
대기열의 첫 번째 요소 삭제하다 성공 도시 그 값을 반환하다.
<区别>
대기열이 비어 있는 경우
묻다.
제거하다(): NoSuchElementException 예외 세대
묻다.
투표(): 빈 반환
데이터의 첫 번째 요소 확인
– q.요소()
E element();
– q.peek()
E peek();
<共同点>
대기열의 첫 번째 요소 값 반품하다.
<区别>
대기열이 비어 있는 경우
묻다.
요소(): NoSuchElementException 예외 세대
묻다.
나타나다(): 빈 반환
구성
추가(), 제거(), 요소()그리고 공급(). 투표(), 엿보기()사이의 차이
이것은 문제가 있는 상황에서 예외를 생성하거나 false 또는 null을 반환하는 것의 차이입니다.
인용하다
코딩테스트입니다 – 나동빈