А зачем тут счётчики количества рёбер? Вроде бы кратность нигде не используется, и было бы достаточно True/False.

Ну или вообще для каждой вершинки хранить set соседей.