알고리즘

# [알고리즘] Que 구현

ForrestPark 2024. 12. 28. 15:40


📌 요약 : Que 의 기능인 pop, push 를 class로 구현

🤔 Que 란?

📌 Que입출력방향이 서로반대인 선형자료구조 이다.

1. push 구현

class Queue:
    def __init__(self):
        ## 가장 앞에 있는 녀석 front 
        self.front = None

    ## LL 의 node 활용 하여 구현 
    def push(self, value):
        ## push 할때 self 의 front 가 비어있는지 확인하는게 중요
        if not self.front: # 비어있는 경우 
            self.front = Node(value) ## 노드를 집어넣어주고 끝
            return
        ## 뒤에다 하나씩 붙여 나가야한다. 헤드에서 시작해서 제일 뒤로간다. 
        ## 앞에 있는 녀석 설정 
        node = self.front
        while node.next: ## 순회 시작
            node = node.next
        ## 제일끝으로 왔다. 
        node.next = Node(value) ## 끝에 노드를 넣은후 가리킴 

2. pop 구현

    ## front 를 꺼낸뒤 없에고 다음 노드를 front 로 지정 한다. 
    def pop(self):
        ## 꺼낼려고 하는데 아무것도 없을 경우 
        if not self.front:
            return None
        ## 노드가 있을때 맨 앞에 있는걸 node 로 지정 
        node = self.front

        ## 지금 바라보고잇는 녀석의 다음녀석을 front 로 지정해준다. 
        self.front = self.front.next
        return node.val

3. is empty 구현

    ## self 의 front 가 None 이면 비어있다.
    def is_empty(self):
        return self.front is None