JB의 이모저모

큐 (Queue) 본문

자료구조(Data Structure)

큐 (Queue)

J B 2024. 9. 13. 17:55

큐 (Queue)


FIFO (First In First Out) 원칙을 따르는 선형 데이터 구조

먼저 들어간 요소가 먼저 나온다

 

대기열의 기본 작업


  • enqueue(): 큐의 끝, 즉 뒤쪽에 요소를 삽입합니다.
  • dequeue(): 이 연산은 큐의 앞쪽에 있는 요소를 제거하고 반환합니다.
  • front(): 이 연산은 요소를 제거하지 않고 프런트엔드의 요소를 반환합니다.
  • rear(): 이 연산은 요소를 제거하지 않고 뒤쪽에 있는 요소를 반환합니다.
  • isEmpty(): 이 연산은 큐가 비어 있는지 여부를 나타냅니다.
  • isFull(): 이 연산은 큐가 가득 찼는지 여부를 나타냅니다.
  • size(): 이 연산은 큐의 크기, 즉 큐에 포함된 총 요소 수를 반환합니다.

 

큐의 유형


  • 선형 큐 (Linear Queue)
    • 큐의 가장 기본적인 버전
    • 삽입인 Enqueue 과정은 뒤에서 이루어지고 제거인 Dequeue 과정은 앞에서 이루어진다
    • 삽입과 삭제를 반복하다 보면 앞에 있는 인덱스가 비어 있음에도 꽉 찼다고 인식하는 경우가 발생 -> 이러한 경우를 보안하기 위해 원형 큐가 나옴
  • 원형 큐 (Circular Queue)
    • 선형 큐의 문제점을 보완하기 위해 나옴
    • 마지막 요소가 첫번째 요소에 연걸
    • 메모리를 더 나은 방식으로 활용
    • 배열의 마지막 인덱스에서 다음 인덱스로 넘어갈 때 (index+1) % 배열의 사이즈를 이용하여Out Of Bounds Exception이 일어나지 않고 인덱스 0으로 순환되는 구조를 가진다.
  • 우선순위 큐 (Priority Queue)
    • 일부 우선순위에 따라 큐에 요소를 정렬
  • 데큐 (Dequeue)
    • Double Ended Queue
    • 양쪽 끝에서 삽입하거나 제거할 수 있다

'자료구조(Data Structure)' 카테고리의 다른 글

자료구조(Data Structure)  (0) 2024.09.13
트리(Tree)  (0) 2024.09.13
스택(Stack)  (0) 2024.09.13
연결 리스트 (Linked List)  (0) 2024.09.13
배열 (Array)  (0) 2024.09.13