'큐'란 자료 구조는 "놀이기구"을 떠올리면 된다.
한 줄로 섰다가 한 줄로 나오는 놀이기구!
(데이터를 한쪽 끝으로 넣고, 반대쪽에서 빠져 나온다)
Swift 언어에서의 큐 의 예시도 함께 비교해 보자.
Queue
- 한쪽 끝으로 자료를 넣고, 반대쪽에서는 자료를 뺄 수 있는 선형 구조
놀이기구 특징: First In First Out = FIFO
가장 처음에 줄을 선 사람이 가장 빨리 나온다.
가장 마지막에 선 사람은 가장 늦게 나온다.
먼저 해야 하는 일들을 저장하고 싶을 때나 먼저 들어온 일들을 순서대로 처리해야 할 때 큐를 사용한다.
test.python
def test_queue():
queue = Queue()
queue.push(1)
queue.push(2)
queue.push(3)
queue.push(4)
queue.push(5)
assert queue.pop() == 1
assert queue.pop() == 2
assert queue.pop() == 3
assert queue.pop() == 4
assert queue.pop() == 5
assert queue.pop() is None
assert queue.is_empty()
structures.python
class Queue:
def __init__(self):
self.front = None
def push(self, value):
if not self.front:
self.front = Node(value)
return
node = self.front
while node.next:
node = node.next
node.next = Node(value)
def pop(self):
if not self.front:
return None
node = self.front
self.front = self.front.next
return node.val
def is_empty(self):
return self.front is None
'Python 문법 정복하기' 카테고리의 다른 글
[Python] LinkedList 예제 (Palindrome) (0) | 2024.03.23 |
---|---|
[Python] Queue 예제 (Josephus) (0) | 2024.03.23 |
[Python] Array & LinkedList (1) | 2024.03.23 |
[Python] Stack 예제 (0) | 2024.03.16 |
[Python] Stack (LIFO) (0) | 2024.03.12 |