그럼 연결 리스트에서 사용할 노드를 직접 구현해 보겠습니다.
코드 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절에서 배운 파이썬의 정보 은닉 기법입니다. 또한 프로퍼티 기법도 사용해 캡슐화했습니다.