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는 공부 후 추후에 다시 기록할 예정)