자료구조 - 큐(Queue)

2022. 9. 9. 03:21·자료구조 알고리즘/자료구조

언어는 python을 사용하였습니다.

2. 큐(Queue)

  • 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO) 구조 입니다.
  • FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대
  • 큐의 경우 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기위해 OS에서 많이 사용된다.

삽입, 삭제

  • 큐에 데이터를 추가하는 작업 인큐(Enqueue)
  • 큐에 데이터를 꺼내는 작업 디큐(dequeue)
  • 데이터를 꺼내는 쪽 프런트(front)
  • 데이터를 넣는 쪽 리어(rear)

파이썬에서의 큐(Queue)

  • 파이썬에서는 queue 라이브러리를 통해 다양한 큐 구조를 제공한다
  • 일반적인 Queue, LIFO 구조의 LifoQueue(), 우선순위를 두고 우선순위가 높은 순위로 출력하는 우선순위 큐 PriorityQueue() 등이 있다.

FIFO 구조의 Queue() 만들기

import queue
# 큐 만들기
data_queue = queue.Queue()
# 데이터 넣기
data_queue.put()
# 큐 사이즈 확인
data_queue.qsize()
# 데이터 꺼내기
data_queue.get()

리스트를 통한 큐의 enqueue, dequeue 기능 구현

queue_list = list()

# 데이터 추가
def enqueue(data):
    queue_list.append(data)

#데이터 뽑기
def inqueue():
    data = queue_list[0] #0번은 항상 제일 첫번째를 의미
    del queue_list[0] #첫 번째 데이터를 삭제 시켜주어야 한다
    return data

References

Do it! 점프 투 파이썬
Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬편
잔재미코딩

'자료구조 알고리즘 > 자료구조' 카테고리의 다른 글

자료구조 - 해쉬 테이블(Hash Table)  (1) 2022.10.04
알고리즘의 복잡도 표현  (0) 2022.10.03
자료구조 - 링크드 리스트(Linked List)  (0) 2022.10.03
자료구조 - 스택(stack)  (2) 2022.09.11
자료구조 - 배열 (Array)  (0) 2022.09.09
'자료구조 알고리즘/자료구조' 카테고리의 다른 글
  • 알고리즘의 복잡도 표현
  • 자료구조 - 링크드 리스트(Linked List)
  • 자료구조 - 스택(stack)
  • 자료구조 - 배열 (Array)
Dream Jin
Dream Jin
Coder가 아닌 Engineer 되기위해 시작하기
  • Dream Jin
    JJin 개발 Vlog (~23.01.02)
    Dream Jin
  • 전체
    오늘
    어제
    • 분류 전체보기 (49)
      • Daily (3)
      • 🖥️ development (21)
        • JAVA (9)
        • Java Script (11)
        • SQL (1)
      • Computer Science (0)
      • IT (8)
      • 자료구조 알고리즘 (16)
        • 알고리즘 (9)
        • 자료구조 (6)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • github
    • instagram
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.
Dream Jin
자료구조 - 큐(Queue)
상단으로

티스토리툴바