p = trunk_base # вершина из которой растет черенок
v = <next vertex> # соседняя вершина к p вдоль цикла
while power[v] != 3:
for n in G[v]:
if n != p:
v = n
p = v
break
Общий делитель 2 и 4, как математик любитель, заявляю 4
= delete;
) вместо деланья их приватными. Приватным делают просто конструктор, когда надо запретить кому-то создавать объект самостоятельно вне специальной фабрики.