큐 한쪽 끝으로 자료를 넣고, 반대쪽에서는 자료를 뺄 수 있는 선형구조 놀이기구가 한 줄로 서서 한줄로 나오는 것을 비유 가능 First In First Out 💡 큐가 제공하는 기능 enque(data): 맨 뒤에 데이터 추가 dequeue(): 맨 위의 데이터 뽑기 peek(): 맨 위의 데이터 보기 isEmpty(): 큐가 비었는지 안 비었는지 여부 반환 스택과 마찬가지로 데이터 넣고 뽑는 걸 자주하는 자료 구조이므로 링크드 리스트와 유사하게 구현 가능 스택과 다르게 끝과 시작의 노드를 전부 가지고 있어야 함 self.head, self.tail class Node: def __init__(self, data): self.data = data self.next = None class Queue: def __init__(self): self.head = None self.tail = None def enqueue(self, value): new_node = Node() if self.is_empty(): self.head = new_node self.tail = new_node return self.tail.next = new_node self.tail = new_node def dequeue(self): if self.is_empty(): return "Queue is Empty" delete_head = self.head self.head = self.head.next return delete_head.data def peek(self): if self.is_empty(): return "Queue is Empty" return self.head.data def is_empty(self): return self.head is None
알고리즘 3주차 - 큐
큐
'기술개발 > Algorithm' 카테고리의 다른 글