본문 바로가기
  • hazard_dev@__
  • hazard_dev@__
Python

자료구조[2] - Queue(python)

by Hazard3_o00sung 2020. 6. 2.
728x90

본 포스트는 파이썬언어를 중심으로 작성되었음을 알려드립니다.

 

자료구조[2] - Queue(python)

 

큐 자료구조 또한 c언어를 중심으로 작성한 포스팅한 글이 있습니다. 우선 c언어로 구현된 큐 자료구조가 궁금하신 분을 위해 링크를 남겨드리겠습니다!

 

https://hazarddev.tistory.com/20?category=794281

 

큐가 뭔가요!!(c_queue)

본 포스트는 c언어를 중심으로 작성되었습니다. 큐가 뭔가요!!(c_queue) 위 사진은 당구장을 가보신 분이라면 아시듯이 당구 큐대입니다. 본인은 4구 150에 쓰리쿠션 100정도의 이상한 평균실력을 ��

hazarddev.tistory.com

간략하게 설명을 드리면, 저번 자료구조[1] 스택에서 설명드렸었지만, 스택 자료구조는 LIFO방식을 따릅니다. 그렇다면 큐는 어떤 방식을 따르며, 어떤 방식으로 구현되는지 간략하게 설명하도록 하겠습니다.

 

큐 자료구조는 FIFO방식입니다. 

"FIRST IN, FIRST OUT"

 

이 개념을 현실세계로 가져와서 쉽게 적용해보겠습니다. 예를 들어, 은행에 갔다고 가정해봅시다. 은행에 가게됬을 시에 제일 먼저 하는 행동은 번호표를 뽑는 것입니다. 즉, 나보다 먼저 온 사람이 번호표의 숫자가 더 낮은 숫자일테고, 저보다 은행을 먼저 나가게 될 것입니다. 큐 자료구조 또한 그러한 방식을 따른다는 것입니다.

 

논리적 구조를 표현한 글 또한 위 포스트에 자세하게 설명되어있습니다. 자료구조만 단적으로 설명하기엔 설명할 만 한 것이 그닥 없습니다. 추후에 자료구조에 관련한 디테일한 포스팅(예정)을 봐주시면 될 것 같습니다.!

 

그렇다면 코드로 구현했을 시, 어떻게 구현될지 한번 보겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Queue(object): 우선 큐 클래스를 생성해 주겠습니다
    def __init__(self):
        self.queue = [] 객체에 대한 다른 매개변수는 존재하지 않습니다.
 
    def isEmpty(self):
        return not bool(self.queue)
 
    def enqueue(self, item):
        self.queue.insert(0, item) enqueue를 이용하여 큐에 데이터를 삽입하도록 하겠습니다.
insert()메서드는 append()와 다르게 지정한 자리에 데이터를 삽입가능합니다
 
    def dequeue(self):
        value = self.queue.pop() pop메서드를 활용하여 먼저 들어온 데이터를 제거합니다.
        if value is not None:
            return value
 
        else:
            return "Queue is empty"
 
    def size(self):
        return len(self.queue)
 
    def peek(self):
        if self.queue:
            return self.queue[-1]
 
        else:
            return "Queue is empty"
 
    def __repr__(self):
        return repr(self.queue)
 
if __name__ == "__main__":
    queue = Queue()
    for i in range(1,5):
        queue.enqueue(i)
    print(queue.__repr__())
cs
 
 
 

반환되는 값으로는

 

queue : [4,3,2,1] 

이됩니다. 여기서 dequeue함수를 이용하게 되면,

queue : [4,3,2]

가 됩니다.

 

스택에 관해 잘 알지 못하시는 분들은 스택에 관한 포스팅 글을 읽는 것을 추천드립니다!

https://hazarddev.tistory.com/29?category=794282

 

자료구조[1]-STACK(python)

자료구조[1]-STACK 본 포스트는 python언어로 작성되었음을 알려드립니다. 1. stack이란? https://hazarddev.tistory.com/17?category=794281 STACK(스택)이 뭔가요?[1] 본 포스트는 c언어를 중심으로 작성되었습..

hazarddev.tistory.com

 

궁금한 점은 댓글로 달아주시면, 성심껏 답변을 달아드리도록 하겠습니다!!

 

감사합니다~

728x90

댓글