У меня есть простой НЕПРАВИЛЬНЫЙ граф G, и я хочу повернуть ребро, если определенное условие выполняется.
Следующий код выдает ошибку, что конструктор EdgeElement недоступен:
if(dfsNum[source->index()]>dfsNum[target->index()]){
EdgeElement ee(target, source, target->firstAdj(), source->firstAdj(), e->index());
e = ee.theEdge();
}
Это правильный способ делать то, что я делаю?
ВАЖНОЕ РЕДАКТИРОВАНИЕ:
Виноват. Я не должен перевернуть край, я должен направить его.
На основе документация, Вы можете удалить ребро, используя delEdge
и добавьте новое ребро, используя newEdge
, Ненаправленный граф действительно может быть направленным графом с двумя направленными ребрами для каждого неориентированного ребра. Если это так, удалите край, который вам больше не нужен. Например, чтобы направить ненаправленное ребро (u, v) из u в v, удалите направленное ребро (v, u), поэтому единственным остающимся направленным ребром является (u, v). Вы можете найти ребро для удаления, используя searchEdge
метод.
G.reverseEdge (e) меняет ребро e на графе G.