ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 데이터 구조 - Queue(큐)
    파이썬 프로그래밍/파이썬 기초 2020. 10. 12. 23:39
    반응형

    1. Queue 구조 


    • 줄을 서는 행위와 유사 
    • 가장 먼저 들어간 데이터를 가장 먼저 꺼내는 구조  
      1. 공연장에 가장 먼저 줄을 선 사람이 제일 먼저 입장하는 것과 동일한 방식
      2. FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out)방식으로 stack과 꺼내는 순서가 반대


    2. 알아둘 용어

    • Enqueue : 큐에 데이터를 넣는 방식
    • Dequeue : 큐에서 데이터를 꺼내는 기능 

    3. Queue의 종류 
    • Queue() : 가장 일반적인 큐 자료 구조
    • LifoQueue() : 나중에 입력된 데이터가 먼저 출력되는 구조(스택 구조와 유사)
    • PrioirityQueue() :데이터마다 우선 순위를 입력하여, 우선순위가 높은 데이터순으로 출력


    3.1. Queue()로 큐 만들기 (가장 일반적인 큐, FIFO(First-In, First-Out))


    1. import queue는 파이썬 내부에 내장된 라이브러리이기 때문에 아래와 같이 선언을 하여 
       사용.

    2. "프로그래밍", "파이썬" 순으로 Queue에 입력되었고 qsize(queue의 크기)는 2인것을 알 
        수 있다.

    3. FIFO의 의미와 같이 먼저 입력된 "프로그래밍" 그다음 "파이썬" 순으로 출력되는것을 볼 
       수 있다.

    3.2. LifoQueue()로 큐 만들기 (LIFO(Last-In, First-Out))


    1. LIfoQueue() 역시 import queue를 선언하여 사용가능

    2. LIFO 규칙에 의해 "프로그래밍", "파이썬" 순으로 입력되고 출력은 "파이썬", " 프로그래        밍" 순으로 출력된다.


    3.3. PriorityQueue()로 큐 만들기


    1. PriorityQueue는 우선순위와 함께 입력할 데이터를 선언 


    2. 우선순위 1번에 해당하는 데이터는 "프로그래밍" 2번에 해당하는 데이터는 "파이썬" 3번에       해당하는 데이터는 "프로그램 개발" 이며 우선순위가 가장 높은 1번에 해당하는 데이터부터     출력된다.



    Q가 많이 쓰이는 곳??

    --> 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용



    4. 실제 구현 코드 



    반응형

    댓글

Designed by Tistory.