마지막으로 저장한 데이터가 처음으로 읽히는 자료구조(Last In First Out)
Stack에서 데이터 저장은 Push라고 칭함
데이터를 읽어 들이는 것은 Pop이며, 읽어들임과 동시에 stack에서 삭제
class Mystack:
def __init__(self):
self.plate = []
def push(self, value):
self.plate.append(value)
def pop(self):
if len(self.plate) == 0:
return "다 먹었슈"
else:
return self.plate.pop()
def is_empty(self):
return len(self.plate) == 0
def peak(self):
return self.plate[-1]
def print_stack(self):
print(f'접시 위에 팬케이크가 {self.plate} 만큼 있습니다.')
my_stack = Mystack()
print(my_stack.push('바닐라맛'))
print(my_stack.push('초코맛'))
print(my_stack.peak())
print(my_stack.push('녹차맛'))
print(my_stack.push('커피맛'))
print(my_stack.plate)
print(my_stack.pop())
print(my_stack.pop())
print(my_stack.pop())
print(my_stack.pop())
print(my_stack.pop())
print(my_stack.plate)
my_stack.print_stack()
class Queue:
def __init__(self):
self.waiting = []
def enqueue(self, person):
self.waiting.append(person)
return f'{person}이 대기줄에 추가되었습니다.'
def dequeue(self):
if self.is_empty():
return "대기자 없음! 아무나 튀어나와"
else:
return self.waiting.pop(0)
def front(self):
if self.is_empty():
return "대기자 없음, 아무나 튀어나와"
else:
person = self.waiting.pop()
return person
def is_empty(self):
return len(self.waiting) == 0
def print_queue(self):
return f'저희 까페 대기 손님은 {self.waiting}으로 총 {self.waiting}명이 대기 중입니다.'
queue = Queue()
print(queue.is_empty())
print(queue.enqueue("예리"))
print(queue.enqueue("두리"))
print(queue.enqueue("준식"))
print(queue.enqueue("승현"))
print(queue.waiting)
print(queue.front())
print(queue.waiting)
print(queue.dequeue())
print(queue.dequeue())
print(queue.front())