[Data Structure] 큐(Queue)

2022. 5. 23. 17:13·Computer Science/Data Structure

큐(Queue)란?

큐(queue)는 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조의 자료구조이다. 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다.

 

큐(Queue)의 연산

큐는 아래와 같은 연산들이 필요하다.

  • enqueue(): 큐의 맨 뒤(rear)에 데이터를 삽입한다. 
  • dequeue(): 큐의 맨 앞(front)에서 데이터를 삭제한다.
  • peek(): 큐의 맨 앞(front)의 데이터를 제거하지 않고 반환한다.
  • isEmpty(): 큐가 비었다면 1을 반환하고, 그렇지 않다면 0을 반환한다.

여기서 front는 큐의 맨 앞의 위치(인덱스)를 의미하고, rear는 큐의 맨 뒤의 위치(인덱스)를 의미한다.

 

큐(Queue)의 종류

Linear Queue(선형 큐)

막대 모양으로 된 큐이다. 크기가 제한되어 있고 빈 공간을 사용하려면 모든 자료를 꺼내거나 자료를 한 칸씩 옮겨야 한다는 단점이 있다.

Circular Queue(원형 큐)

선형 큐의 문제점(배열로 큐를 선언할시 큐의 삭제와 생성이 계속 일어났을때, 마지막 배열에 도달후 실제로는 데이터공간이 남아있지만 오버플로우가 발생)을 보완한 것이 환형 큐이다. front가 큐의 끝에 닿으면 큐의 맨 앞으로 자료를 보내어 원형으로 연결 하는 방식이다.

Prioriry Queue(우선순위 큐)

큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다. 우선순위 큐는 일반적으로 힙(Heap)을 이용하여 구현한다.

저작자표시 (새창열림)
'Computer Science/Data Structure' 카테고리의 다른 글
  • [Data Structure] 스택(Stack)
  • [Data Structure] 연결 리스트(Linked List)
김행만
김행만
이모저모 다 적기
  • 김행만
    hyeinisfree
    김행만
  • 전체
    오늘
    어제
    • 분류 전체보기 (41)
      • AWS (0)
      • Network (6)
      • CICD (1)
      • Spring (0)
      • Ruby on Rails (0)
      • Java (12)
      • Python (1)
      • Computer Science (6)
        • Algorithm (2)
        • Data Structure (3)
        • Database (0)
        • Design Pattern (1)
      • Solving Algorithm Problem (12)
        • LeetCode (12)
        • Programmers (0)
      • 자격증 (1)
      • Tip (1)
      • Etc (1)
        • 도서, 강의 (1)
        • Talk (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    CISCO
    java 필수 문법
    Network
    java
    cisco packet tracer
    Packet Tracer
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
김행만
[Data Structure] 큐(Queue)
상단으로

티스토리툴바