더북(TheBook)

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), cntpos와 같아지면 while 문을 빠져나와 cur 데이터를 반환합니다(#16).

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