파이썬 알고리즘 인터뷰/스터디 과제

1주차 스터디

젤리의it 2024. 1. 7. 22:31

1. 스택 - 삽입 삭제가 후입선출(LIFO)하는 자료구조, 삽입 삭제가 한쪽에서 이루어짐

 

스택 구현

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

class Stack:
    def __init__(self):
        self.top = None

    def push(self, value):
        self.top = Node(value, self.top)

    def pop(self):
        if self.top is None:
            return None

        node = self.top
        self.top = self.top.next

        return node.item

    def is_empty(self):
        return self.top is None

 

2. 큐 - 삽입과 삭제 연산이 선입선출(FIFO)하는 자료구조

 

큐 구현

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


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

    def push(self, value):
        if not self.front:
            self.front = Node(value, None)
            return #종료

        node = self.front
        while node.next:
            node = node.next
        node.next = Node(value, 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):
        return self.front is None

 

'파이썬 알고리즘 인터뷰 > 스터디 과제' 카테고리의 다른 글

DFS와 BFS  (0) 2024.01.11