graph 분리
directed graph와 undirected graph를 새로운 클래스로 분리.
edge의 방향성에 따라서 추가될 api가 서로 다름.