코드 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을 순회하면서 비활성화된 정점이 있다면 이를 사용하고, 모두 사용 중이라면 정점을 하나 추가합니다.