항해99 TIL 1주차 -4

강민범·2023년 10월 19일
0
post-thumbnail

큐(Queue)

큐란 스택과 비슷한 개념인데 차이점이 있다면 큐는 FIFO 즉 먼저 입력된 데이터가 먼저 출력되는 순서이며 스택은 LIFO으로 마지막으로 입력된 데이터가 먼저 출력되는 구조입니다.

파이썬에서 라이브러리 함수로 deque를 제공해주지만 직접 구현 할 줄도 알아야 하기 때문에

class Node:
    def __init__(self, val, next):
        self.val = val
        self.next = next

class Queue:
    def __init__(self):
        self.front = None

    def push(self,val):
        if not self.front:
            node = Node(val,None)

        node = self.front

        while node.next:
            node = node.next

        node.next = Node(val, None)

    def pop(self):
        if not self.front:
            return None

        node = self.front

        self.front = self.front.next
        return node.item

    def is_empty(self):
        if not self.front:
            return self.front is None

파이썬 라이브러리로 제공하는 함수를 사용하면

from collections import deque

deq = deque([1,2,3,4])

print(deq.pop()) // 4

deq.append(5) 

print(deq) //deque([1, 2, 3, 5])

deq.popleft()

print(deq) //deque([2, 3, 5])

deq.appendleft(3)

print(deq) //deque([3, 2, 3, 5])

요즘은 알고리즘/자료구조를 계속해서 공부하면서 코딩테스트 문제도 풀고있는데 굉장히 어렵다.
하지만 이 과정이 있어야 성장한다고 믿고 꾸준하고 열심히 공부해야겠다.

profile
개발자 성장일기

0개의 댓글