더북(TheBook)

그럼 연결 리스트에서 사용할 노드를 직접 구현해 보겠습니다.

코드 12-1 data_structure_1/linked_list.py ① (노드 클래스)

class Node:
    def _ _init__(self, data=None):
        # 노드는 데이터 부분과
        # 다음 노드를 가리키는 참조 부분을 가진다
        self.__data = data
        self.__next = None
    # 노드 삭제를 확인하기 위한 코드
    def _ _del__(self):
        print("data of {} is deleted".format(self.data))

    @property
    def data(self):
        return self.__data

    @data.setter
    def data(self, data):
        self.__data = data

    @property
    def next(self):
        return self.__next

    @next.setter
    def next(self, n):
        self.__next = n


멤버 __data에는 데이터를 저장하고 멤버 __next는 다음 노드를 가리킵니다. 두 멤버를 유심히 보면 앞에 언더 바( _ )가 두 개 있습니다. 6장 4.5절에서 배운 파이썬의 정보 은닉 기법입니다. 또한 프로퍼티 기법도 사용해 캡슐화했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.