Appia의 IT세상

파이썬[Python] 자료구조[Data Structure] 큐[QUEUE]구현하기 본문

Python/Python 응용

파이썬[Python] 자료구조[Data Structure] 큐[QUEUE]구현하기

Appia 2020. 10. 11. 07:40
반응형

파이썬[Python] 자료구조[Data Structure] 큐[QUEUE]구현하기

 

이전 포스팅에서는 자료구조에서 많이 사용하는 스택[Stack]에 대해서 알아봤습니다. 이번 포스팅에서는 스택[Stack]과 함께 매우 많이 사용하는 큐[QUEUE]에 대해서 파이썬을 통해서 구현해보도록 하겠습니다. 일단 큐를 가장 많이 사용할 떄 이야기 하는 것을 FIFO(First In, First Out) 즉, 선입 선출입니다. 즉 , 가장 먼저 들어간 데이터가 가장 먼저 제거되는 형태입니다. 

 

자료구조[Data Structure] 큐[QUEUE]

다음과 같은 구조로 데이터가 들어가고 제거 되는 구조입니다. 그래서 앞서 스택(Stack)에서 코드를 일정 부분 재사용하여 작업을 진행해보도록 하겠습니다. 

 

이와 같은 형태로 코드를 구현할 수 있습니다. 

 
#클래스 선언
class Queue:
 
    # 초기 설정, 스택으로 사용할 리스트 선언
    def __init__(self):
        self.queue = []
 
    # In 함수 / insert 함수 List의 Insert 함수 이용
    def insert(self, data):
        self.queue.insert(0, data)
 
    # Out 함수 / Remove 함수, List의 pop함수 이용
    def remove(self):
        if len(self.queue) <=0 :
            return("No Data in Stack")
        else :
            return self.queue.pop()
 
 
 
ExStack = Queue()
ExStack.insert("A")
ExStack.insert("B")
ExStack.insert("C")
ExStack.insert("D")
 
ExStack.remove()
ExStack.remove()
print(ExStack.queue)
 
cs

 

크게 변하는 부분은 함수 부분입니다. 즉, 스택 부분에서 push / pop부분을 여기에서 insert/remove로 변경하였습니다. 그리고, insert를 입력한 데이터를 가장 앞으로 넣어버립니다. 그러면, pop시 앞서서 입력된 데이터들이 제거되는 형태이입니다. 

 

위의 코드 부분을 실행하면, 다음과 같은 결과가 나옵니다.

['D', 'C']
cs

다음 링크에서는 앞서서 포스팅한 스택을(Stack)을 구현한 부분입니다. 함꼐 보면 도움이 될 것입니다. 

 

파이썬[Python] 자료구조[Data Structure] 스택[Stack]구현하기

 

파이썬[Python] 자료구조[Data Structure] 스택[Stack]구현하기

파이썬[Python] 자료구조[Data Structure] 스택[Stack]구현하기 대학 시절 컴퓨터 공학을 전공한 저에게 자료구조라는 과목은 기억에 남습니다. 다양한 이유가 있었겠지만, 교수님이 저의 지도교수님�

appia.tistory.com

 

오늘은 파이썬[Python] 자료구조[Data Structure] 큐[QUEUE]구현하기라는 주제로 큐를 구현하는 부분에 대해서 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments