최대 1 분 소요

Stack 뜯어보기!

  • 언제나 기본기가 제일 중요함
  • 그렇다면? 구조 뜯어 버리기!

Stack 구현

  • 파이썬에서는 Stack을 따로 제공하지 않는다.
  • 자세한 설명은 Java 자료구조 Stack 포스팅에 해 놓았다.

코드 구현

class Stack:  
    def __init__(self):  
        self.head = Node()  
        self._size = 0  
  
    def push(self, data):  
        new_node = Node()  
        new_node.data = data  
        new_node.next = self.head.next  
        self.head.next = new_node  
        self._size += 1  
  
    def pop(self):  
        if self.size == 0:  
            return None  
  
        ret = self.head.next  
        self.head.next = ret.next  
        self._size -= 1  
        return ret.data  
  
    def peek(self):  
        if self._size == 0:  
            return None  
        return self.head.next.data  
  
    def size(self):  
        return self._size  
  
  
class Node:  
    def __init__(self):  
        self.next = None  
        self.data = None  
  
  
if __name__ == "__main__":  
    s = Stack()  
    print("s.push(3)")  
    s.push(3)  
    print("s.push(5)")  
    s.push(5)  
    print("s.push(1)")  
    s.push(1)  
    print("s.push(9)")  
    s.push(9)  
    print(f"s.size(): {s.size()}")  
    print(f"s.peek(): {s.peek()}")  
    print(f"s.pop(): {s.pop()}")  
    print(f"s.pop(): {s.pop()}")  
    print(f"s.pop(): {s.pop()}")  
    print(f"s.pop(): {s.pop()}")

참고

https://wikidocs.net/192069

댓글남기기