파이썬 알고리즘 - 스택(Stack)

안녕하세요 jay입니다.
오늘은 알고리즘 중 Stack에 대해서 정리를 해보겠습니다.
(node까지 구성한 코드는 아닙니다.)




1. Stack이란?

Last In Last Out(LIFO) 후입선출 구조를 가지는 자료구조입니다.


데이터가 영희,철수,민수,희수,지영 순으로 쌓였습니다.
여기서 데이터를 뽑으면, Last Out이므로 지영이가 추출됩니다.

2. Stack의 주요 기능(function)

Push : 스택의 끝에 항목을 넣는 기능
Pop : 주어진 위치에 있는 항목을 삭제하고 항목을 돌려줌


3. 스택 파이썬 코드

class Stack:
    
    def __init__(self):
        self.stack_items = []
        
    def pop(self):
        item_length = len(self.stack_items)
        
        if item_length < 1:
            print("Stack is empty")
            return False
        
        result = self.stack_items[-1]
        del self.stack_items[-1]
        return result
    
    def push(self,x):
        self.stack_items.append(x)
        
    def isEmpty(self):
        return not self.stack_items

    def printStack(self):
        print(self.stack_items)
        
st = Stack()
st.printStack()
print(st.isEmpty())
st.push(1)
st.push(3)
st.push(5)
st.push(7)
st.push(9)
st.printStack()
print(st.isEmpty())
print(st.pop())
print(st.pop())
print(st.pop())
print(st.pop())
print(st.pop())
print(st.isEmpty())



댓글