Data Structure3. Stack & Queue

BLAKE KIM·2020년 8월 19일

StackQueue는 비슷한 구조인데 자료를 읽어들이는 순서가 다르다.

Stack

StackLast In First Out이라고 한다. 마지막으로 저장한 데이터가 처음으로 읽힌다는 뜻이다. Stack에서 데이터 저장은 push라고 한다. 데이터를 읽어들이는 건 pop이라고 한다. 여기서 pop은 읽기와 동시에 Stack에서 삭제한다.

List를 사용한 Stack 구현 예제

class Stack:
   def __init__(self):
     self._stack = []

   def push(self, data):
     self._stack.append(data)

   def pop(self):
     if len(self._stack) == 0:
       return None

     data = self._stack[-1]
     del self._stack[-1]

     return data

   def peek(self):
     if len(self._stack) == 0:
       return None

     data = self._stack[-1]

     return data

Stack을 사용하는 경우

  • Web brower 내역 혹은 최신 내역이 먼저 나와야 하는 경우

Queue

QueueStack과 반대로 First In First Out이다. 먼저 push된 자료가 먼저 pop된다는 뜻이다.

List를 사용한 Queue 구현 예제

class Queue:
    def __init__(self):
        self._queue = []

    def push(self, data):
        return self._queue.append(data)

    def pop(self)
        if len(self._queue) == 0:
            return None

        return self._queue.pop()

    def peek(self):
        if len(self._queue) == 0:
            return None

        return self[0]

Queue를 사용하는 경우

  • 맛집 예약 시스템
  • OS 프로세스 스케줄링 시스템
profile
BackEnd

0개의 댓글