이터레이터 프로토콜을 구현한 데이터 스택

데이터 스택은 데이터를 저장하고 데이터에 접근하는 데 유용한 자료구조입니다. 이러한 자료구조를 효율적으로 활용하기 위해서는 이터레이터 프로토콜을 구현하는 것이 중요합니다. 이터레이터 프로토콜은 데이터 스택에 순차적으로 접근하고 데이터를 순회할 수 있는 방법을 제공합니다.

이터레이터 프로토콜이란?

이터레이터 프로토콜은 파이썬에서 제공하는 프로토콜 중 하나로, __iter__()__next__() 메서드를 구현함으로써 이터레이터 객체를 만들 수 있습니다. 이터레이터 객체는 데이터를 순회하고 접근하는 기능을 제공합니다.

데이터 스택의 이터레이터 프로토콜 구현하기

아래는 파이썬으로 데이터 스택을 구현하고 이터레이터 프로토콜을 구현한 예시입니다.

class DataStack:
    def __init__(self):
        self.data = []
        self.index = len(self.data) - 1
    
    def push(self, item):
        self.data.append(item)
    
    def pop(self):
        return self.data.pop()
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.index >= 0:
            item = self.data[self.index]
            self.index -= 1
            return item
        else:
            raise StopIteration

위의 코드는 DataStack 클래스를 정의하고, 데이터를 저장하고 접근하기 위한 메서드와 이터레이터 프로토콜을 구현한 메서드를 포함하고 있습니다.

데이터 스택 사용하기

데이터 스택을 사용하여 데이터를 저장하고 순회하는 방법은 다음과 같습니다.

stack = DataStack()
stack.push(1)
stack.push(2)
stack.push(3)

for item in stack:
    print(item)

# 결과: 3 2 1

위의 예시에서 DataStack 객체를 생성하고, push() 메서드로 데이터를 저장합니다. 그 후 for 루프를 통해 이터레이터를 사용하여 데이터를 순차적으로 접근하고 출력합니다.

마무리

이터레이터 프로토콜을 구현한 데이터 스택은 데이터 저장 및 순회에 용이한 자료구조로 활용할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.

#Python #DataStack