상세 컨텐츠

본문 제목

[Python 자료구조] 큐 (Queue)

자료구조

by donggyu1998 2022. 2. 6. 18:18

본문

반응형

💡 큐 (Queue)

알고리즘은 스택과 같이 데이터를 임시 저장하는 자료구조이지만, 스택처럼 가중 나중에 넣은 데이터를 먼저 꺼내지 않는다. 스택은 후입선출이지만, 큐는 선입선출 ( First In First Out ) 방식이다.

 

간략하게 설명하자면, '가장 먼저 넣은 데이터를 가장 먼저 꺼내는 구조이다.'

 

💡 설명

1. 파란색, 주황색이 포함된 배열에 노란색을 넣는다. 

2. 노란색이 들어가게 되면 배열에는 [ 파란색, 주황색, 노란색 ] 이 있다.

3. pop 을 시도하는 경우 가장 먼저 들어간 파란색이 나오게 된다. 

💡 숫자로 된 설명

큐 ( Queue ) 는 데이터 추가하는 작업을 인큐 ( enqueue ), 데이터 꺼내는 작업을 디큐 ( dequeue ) 라고 한다.

 

💡 간략한 코드로 Queue 구현

1. queue 배열 생성

2.  5와 3을 push 하게 되면 [5, 3] 이 출력된다.  

3.  pop(0) 을 하는 경우 먼저 들어간 5가 나오며, queue 에는 3만 남게 된다. 

 

pop(0)은 제일 앞 원소를 뽑아낸다.

 

 

💡 class 를 활용한 Queue 구현 

 

class Queue:
    
    def __init__(self):
        self.queue = []
        
    def enqueue(self, data):
        self.queue.append(data)
        
    def dequeue(self):
        
        size = len(self.queue)
        if size == 0:
            print ("Queue is Empty")
            
        else:
            data = self.queue[0]
            self.queue.pop(data)
            return self.printInfo()
        
    def printInfo(self):
        print ("queue_list : {}".format(self.queue))
        
queue = Queue() # queue 객체 생성

for number in range(3): # for loop 을 이용하여 0, 1, 2 enqueue
    queue.enqueue(number)

queue.printInfo() # queue_list 출력 : 출력 시 [0, 1, 2]

dequeue_result = queue.dequeue() 
print (dequeue_result)

queue class 를 만드는데, queue 객체 초기화 변수로는 queue_list 를 만든다.

큐 ( Queue ) 는 데이터 추가하는 작업을 인큐 ( enqueue ), 데이터 꺼내는 작업을 디큐 ( dequeue ) 라고 한다.

데이터 추가 작업을 위한 함수로 enqueue , 데이터 꺼내는 작업으로 dequeue 함수를 만든다.

dequeue 시 queue_list 길이가 0인 경우 'Queue is Empty' 를 출력하고, 아니라면 queue_list 의 제일 첫 번째 있는 값을 꺼낸다. 

 

💡 실행 결과

반응형

관련글 더보기