더북(TheBook)

코드 6-2

    def is_empty(self):
        if self.vtx_num == 0:
            return True
        return False

    def add_vertex(self):
        for i in range(len(self.vtx_arr)):
            # 중간에 삭제된 정점이 있을 경우
            # 이를 재사용합니다.
            # vtx_arr 값이 False면
            # 삭제된 정점이라는 의미입니다.
            if self.vtx_arr[i] == False:
                self.vtx_num += 1
                self.vtx_arr[i] = True
                return i
        # 삭제된 정점이 없다면 정점을 하나 추가합니다.
        self.adj_list.append([])
        self.vtx_num += 1
        self.vtx_arr.append(True)
        return self.vtx_num - 1

코드 6-2는 is_empty()add_vertex() 메서드입니다. add_vertex() 메서드는 추가된 정점의 정점 인덱스를 반환합니다. self.vtx_arr을 순회하면서 비활성화된 정점이 있다면 이를 사용하고, 모두 사용 중이라면 정점을 하나 추가합니다.

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