본 포스트는 파이썬언어를 중심으로 작성되었음을 알려드립니다.
자료구조[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
궁금한 점은 댓글로 달아주시면, 성심껏 답변을 달아드리도록 하겠습니다!!
감사합니다~
'Python' 카테고리의 다른 글
파이썬에서의 문자열 리스트 변환 및 자르기! (0) | 2020.11.29 |
---|---|
자료구조[3]-이진트리(python) (1) | 2020.06.03 |
자료구조[1]-STACK(python) (0) | 2020.06.01 |
파이썬 리스트 중복제거! (0) | 2020.04.02 |
파이썬에서의 추상데이터타입![2] (0) | 2020.03.02 |
댓글