search_pos() 함수도 연결 리스트를 순회하면서 검색한다는 점은 search_target() 함수와 같습니다. 다른 점은 인자로 데이터 위치를 전달해 해당 위치에 있는 데이터를 반환한다는 점입니다.
코드 12-6 data_structure_1/linked_list.py ⑥ (search_pos() 함수)
def search_pos(self, pos): ''' search_pos(pos) -> data pos가 범위를 벗어날 때 -> None ''' # pos가 범위를 벗어나면 # None을 반환 if pos > self.size() – 1: #14 return None cnt = 0 cur = self.head #12 if cnt = = pos: return cur.data # cnt가 pos와 같아질 때 # 순회를 멈춘다 while cnt < pos: #15 cur = cur.next #13 cnt += 1 return cur.data #16
#12와 #13을 보면 search_pos() 함수도 연결 리스트를 순회한다는 것을 알 수 있습니다. 함수에 전달한 위치가 범위를 벗어나면 None을 반환합니다(#14). while 문에서는 리스트를 순회하며 cnt를 하나씩 증가시키고(#15), cnt가 pos와 같아지면 while 문을 빠져나와 cur 데이터를 반환합니다(#16).