일단 간단하게 짜보자
class Stack(object):
__slots__ = {"next""data"}
    def __init__(self):
        self.data = None
        self.next = None
    def push(selfdata):
        stack = Stack()
        stack.data = data
        stack.next = self.next
        self.next = stack
        return
    def pop(self):
        data = self.next.data
        self.next = self.next.next
        return data
    def top(self):
        return self.next.data
    def empty(self):
        return self.next == None

여기서 처음에 data, next는 무조건 None으로 해주지 않아도 되지만 이렇게 하는게 관리가 쉽다(이렇게 안해주면 인덱스꼬여서 막장됨)

self를 직접 변경해주면 인자로 받은 self != 변경된 self라고 인터프리터가 이해하기 때문에 next를 직접 변경해주어야 한다.

이런식으로 짜주면 됨 ㅇㅅㅇ

뭔가 메모리 누수같은거 날것 같지만 파이썬을 만만하게 보면 안됨 저거 다 해제됨

파이썬 gc는 참조카운트 형식임 참조횠수가 0이되면 수거해 간단 소리

직접 self.next를 del하게되면 next뒤에있는 모든것이 사라지기도 함