yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

큐(Queue)
~2023.02/자료구조

큐(Queue)

2022. 1. 15. 21:34

1. 큐 구조


  • 줄을 서는 행위와 유사
  • 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
    • 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일
    • FIFO(First-in, First-out) 또는 LILO(Last-in, Last-out) 방식으로 스택과 꺼내는 순서가 반대

 

 

2. 알아둘 용어


  • Enqueue : 큐에 데이터를 넣는 기능
  • Dequeue : 큐에서 데이터를 꺼내는 기능
  • Visualgo 사이트에서 시연해보며 이해하기 (enqueue / dequeue 만 클릭해보며)

https://visualgo.net/en/list 

 

 

3. 파이썬 queue 라이브러리 활용해서 큐 자료구조 사용하기


  • queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공
  • 프로그램을 작성할 때 프로그램에 따라 적합한 자료 구조를 사용
    • Queue() : 가장 일반적인 큐 자료 구조
    • LifoQueue() : 나중에 입력된 데이터가 먼저 출력되는 구조 (스택 구조라고 보면 됨)
    • PriorityQueue() : 데이터마다 우선순위를 넣어서, 우선순위가 높은 순으로 데이터 출력
일반적인 큐 외에 다양한 정책이 적용된 큐들이 있음

 

[Queue()로 큐 만들기 (가장 일반적인 큐, FIFO)]

[LifoQueue()로 큐 만들기 (LILO)]

[PriorityQueue()로 큐 만들기]

[어디에 큐가 많이 쓰일까?]

  • 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용됨 (운영체제 참조)
큐의 경우에는 장단점 보다는 (특별히 언급되는 장단점 없음),
큐의 활용 예로 프로세스 스케쥴링 방식을 함께 이해해두는 것이 좋음

 

 

4. 프로그래밍 연습


[리스트 변수로 큐를 다루는 enqueue, dequeue 기능 구현해보기]

'~2023.02 > 자료구조' 카테고리의 다른 글

힙(Heap)  (0) 2022.04.02
스택(Stack)  (0) 2022.04.02
알고리즘 복잡도 표현 기법  (0) 2022.02.25
해쉬(Hash)  (0) 2022.01.11
배열  (0) 2021.11.26
    '~2023.02/자료구조' 카테고리의 다른 글
    • 스택(Stack)
    • 알고리즘 복잡도 표현 기법
    • 해쉬(Hash)
    • 배열
    yooniiverse
    yooniiverse

    티스토리툴바