우기의 알 블로그 저자 한승욱이라고 합니다.
스스로 알을 깨고 나오는 새처럼
언젠가 알을 깨고 온전한 나 자신이 되었을 때, 그때를 기다리며 제 속에서 솟아 나오는 것을 글로써 표현하고자 합니다.
'개발 기술블로그'를 위주로 저 한승욱의 다양한 관심사, 생각, 철학 등을 포스팅합니다.
큐가 제공하는 기능
enque(data): 맨 뒤에 데이터 추가
dequeue(): 맨 위의 데이터 뽑기
peek(): 맨 위의 데이터 보기
isEmpty(): 큐가 비었는지 안 비었는지 여부 반환
스택과 마찬가지로 데이터 넣고 뽑는 걸 자주하는 자료 구조이므로
링크드 리스트와 유사하게 구현 가능
스택과 다르게 끝과 시작의 노드를 전부 가지고 있어야 함
self.head, self.tail
알고리즘 3주차 - 큐
큐
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
'기술개발 > Algorithm' 카테고리의 다른 글