TIL #38 자료구조 - Stack, Queue

강경훈·2020년 9월 17일
0
post-thumbnail

1. Stack

  • FILO: First In Last Out
    => 처음 들어온 data가 가장 나중에 처리 된다.
  • 쌓아 놓은 책들, 콘 위에 있는 여러 스쿱의 아이스크림 등이 대표적인 stack
  • 코드로 보는 stack
class Stack:
    def __init__(self):
        self.state = []

    def push(self, data): 
        self.state.append(data)
        return True

    def pop(self):
        return self.state.pop()

    def getPeak(self):
        return self.state[-1]

2. Queue

  • FILI: First In Last In
    => 들어온 data 순서대로 처리 된다.
  • 줄서기, 즉 무언가 대기하는 것이 queue
  • 코드로 보는 queue
class Queue:
    def __init__(self):
        self.state = []

    def enqueue(self, data):
		self.state.append(data)
        return True

    def dequeue(self):
        return self.state.pop(0)

    def getFirst(self):
		return self.state[0]

참고

  • queue을 구현 할 때 list을 사용 했는데, 이는 비효율적임
  • list.pop(0)으로 가장 처음 data을 뽑고나면 그 뒤의 data들을 앞으로 옮기는 작업이 진행되기 때문
  • 효율적인 작업을 위해 linked list 같은 타입을 사용해야 됨
    (linked list는 공부 후 추후에 다시 기록할 예정)
profile
방랑하는 개발자

0개의 댓글