ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [파이썬 | 자료구조] 큐(Queue)
    IT Skils/자료구조 2021. 2. 15. 15:57

    안녕하세요~:)

    지난시간에 기본적인 python 배열과 for문을 배웠습니다.

    오늘은 대표적인 데이터구조 큐(Queue)를 배워보겠습니다.

     

    큐의 구조

    큐구조는 간단하게 줄을 서는 행위라고 보시면 됩니다.

    예를 들어 공연장에 입장하기위해 줄을 섭니다. 줄을 먼저 선 사람이 제일 먼저 입장하겠죠??

    이와같은 방식으로 이를 자료구조에서는 FIFO(First In First Out)방식이라고 합니다.

     

    자 이해를 돕기위해 큐를 먼저 생성해보겠습니다. 

    해당 큐를 보았을 때 젤 먼저 입력된 데이터는 25이고 그뒤로 79, 42, 41, 93이 추가된 배열의 형태로 볼 수 있습니다.

     

    여기서 데이터(24) 하나를 더 추가를 해보겠습니다.

    이때 추가된 데이터는 배열의 마지막번째에 추가가 되었습니다.

    이러한 추가방식을 자료구조에서 Enqueue동작이라고 합니다.

    여기서 99라는 데이터를 Enqueue를 하게되면 24데이터 뒤에 99가 생성이 되겠죠? 

     

    그렇다면 여기서 삭제를 하게된다면 당연히 제일 먼저 추가 된 25가 삭제가 되겠죠?

    첫번째 데이터(25)가 삭제가 되었고 그 다음 데이터(79)가 첫번째가 되었습니다.

    이러한 삭제방식은 자료구조에서 Dequeue동작이라고 합니다.

    여기서 Dequeue를 하게되면 79가 사라지고 42가 첫번째 데이터가 되겠죠?

     

    그림과 같이 큐는 이러한 방식으로 동작합니다.

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

    이제 파이썬에서 이러한 큐 동작을 구현해 볼 건데 큐는 파이썬에 라이브러리에서 기본적으로 제공을 해주고있습니다.

    사진을 보시면 queue라는 라이브러리를 import해주고 queue.Queue()함수를 사용했습니다.

    여기서 Queue함수를 이용하면 put이나 get으로 데이터를 추가 /삭제 할 수 있습니다.

    이런 식으로 put함수를 이용해 구조를 만들어봤습니다.

    여기서 데이터(24)를 추가 (put)해보겠습니다.

    이렇게 데이터(24)가 마지막에 추가가되고 큐의 사이즈는 6이 되었음을 알 수 있습니다.

     

    이제 get함수를 이용해 첫번째 데이터(25)를 삭제해보겠습니다.

     

    이렇게 첫번째 데이터(25)가 삭제되고 큐의 사이즈는 5가되었음을 알 수 있습니다.

     

    Queue라는 라이브러리를 이용해 파이썬으로 구현 한 큐를 어느정도 이해하셨다고 봅니다 ^^

     

    자 이번에는 Queue라이브러리를 사용하지 않고

    리스트 변수로 큐를 다루는 enqueue, dequeue기능을 구현해보겠습니다.

     

    queue_list라는 변수를 리스트 변수로 만들고 

    enqueue함수와 dequeue함수를 정의했습니다.

    enqueue함수는 리스트변수에 append()함수를 이용해 데이터를 추가해나가게 만들었습니다.

    dequeue함수는 리스트변수에  첫번째인덱스의 데이터를 삭제하고 반환해주게 만들었습니다.

     

    자 이렇게 대표적인 자료구조  큐(Queue)를 알아보고 공부해보았습니다.

    다음으로는 반드시 알아두어야 할 만큼 중요한 자료구조 스택(Stack)을 알아보겠습니다.

    읽어주셔서 감사합니다 :)

     

     

Designed by Tistory.