자료구조

Queue(선형 큐)

정총무 2022. 12. 11. 13:27

선입선출(First-In-First-Out : FIFO) : 먼저 들어간것이 먼저 나온다

Queue 이전에 배웠던, LinkedList로 구현한다.

Queue 를 Array 로 개발하는 것은 상당히 비효율적이다.(특히 삭제시, 데이터를 1칸씩 앞으로 땡겨와야 한다.) => 다음 포스트에 나오겠지만, 원형 큐가 생겨나게 된 이유이다.

 

 

offer : 삽입 (Enqueue)

1. 처음에 Dummy Head 와 Dummy Tail 이 한곳에 동시에 저장 되어 있다.

2. 데이터가 삽입이 이루어 지면서, Tail 노드를 뒤로 이동시킨다.

 

 

poll : 추출 (Dequeue)

1. 데이터(result) 의 pointer 를 끊어낸다. = 제거

2. Head의 next pointer 를 재설정 한다. ⇒ 뒤에 쌓여 있는 데이터를 앞으로 땡겨오는 과정.

=> LinkedList 의 경우 pointer 만 재설정 해주면 되는 반면, Array는 한칸 씩 모두 앞으로 땡겨와야 하는 작업이 필요(비효율적)

 

peek

0번째 인덱스에 있는 항목을 복제하여 추출