[공부] 내일배움캠프 알고리즘 3주차 Queue

Asher Park·2022년 11월 27일
3
post-thumbnail

큐(Queue) 란?

  • First In First Out
  • 순서대로 처리되어야 하는 일에 필요하다
  • 먼저 해야 하는 일들을 저장하고 싶을 때
  • 데이터를 넣고 뽑는 걸 자주하는 구조
  • self.head 와 self.tail 을 모두 가지고 있어야 한다

enqueue

def enqueue(self, value):
        
        new_node = Node(value)
        
        # 비어있을 경우
        if self.is_empty():
            self.head = new_node
            self.tail = new_node
            return

        self.tail.next = new_node
        self.tail = new_node

        return
  1. 새로운 노드를 만들고
  2. 현재 tail노드의 next에 새로운 노드를 연결하고
  3. tail이 새로운 노드를 가리키게 만든다

dequeue

def dequeue(self):

        if self.is_empty():
            return "Queue is empty!"
        
        dequeue_node = self.head
        self.head = self.head.next

        return dequeue_node.data
  1. head 노드를 변수에 저장해 둔다
  2. head가 현재 head 노드의 다음 노드를 가리키게 한다
  3. 저장해둔 노드를 반환

peek

if self.is_empty():
            return "Queue is empty!"
            
        return self.head.data
  1. head 노드를 반환

is_empty

def is_empty(self):

        return self.head is None
  1. head가 빈값인지 아닌지 반환
profile
배움에는 끝이없다

0개의 댓글