Data Structure3. Stack & Queue

BLAKE KIM·2020년 8월 19일
0

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개의 댓글