오류에 대한 지적이나 질문, 토의 환영합니다. 자유롭게 댓글 남겨주세요!.!
size()
: 현재 큐에 들어있는 데이터 원소 개수를 반환합니다.
isEmpty()
: 현재 큐가 비어있는지를 판단합니다.
비어있으면 True
를, 비어있지 않으면 False
를 반환합니다.
enqueue(x)
: 큐에 데이터 x를 추가합니다.
dequeue()
: 큐의 맨 앞에 저장된 데이터 원소를 제거하며, 반환합니다.
peek()
: 큐의 맨 앞에 저장된 데이터 원소를 반환합니다.
<참고> 배열로 구현한 큐 연산의 시간 복잡도
연산 | 복잡도 |
---|---|
size() | |
isEmpty() | |
enqueue() | |
dequeue() | |
peek() |
class ArrayQueue:
def __init__(self):
self.data = []
def size(self):
return self.len(self.data)
def isEmpty(self):
return self.size() == 0
def enqueue(self, item):
self.data.append(item)
def dequeue(self):
return self.data.pop(0)
def peek(self):
return self.data[0]
from doublylinkedlist import Node
from doublylinkedlist import DoublyLinkedList
class LinkedListQueue:
def __init__(self):
self.data = DoublyLinkedList()
def size(self):
return self.data.nodeCount
def isEmpty(self):
return self.data.nodeCount == 0
def enqueue(self, item):
node = Node(item)
self.data.insertAt(self.data.nodeCount+1, node)
def dequeue(self):
return self.data.popAt(1)
def peek(self):
return self.data.getAt(1).data
이 글은 프로그래머스 스쿨 인공지능 데브코스 과정에서 공부한 내용을 바탕으로 정리한 글입니다.