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

    코드 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절에서 배운 파이썬의 정보 은닉 기법입니다. 또한 프로퍼티 기법도 사용해 캡슐화했습니다.

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