2013-05-03 3 views
1

У меня есть простой НЕОПРЕДЕЛЕННЫЙ граф G, и вы хотите изменить ребро, если какое-то условие истинно. Следующий код выдает ошибку, что конструктор EdgeElement недоступную:Как направить ребро в OGDF?

if(dfsNum[source->index()]>dfsNum[target->index()]){ 
    EdgeElement ee(target, source, target->firstAdj(), source->firstAdj(), e->index()); 
    e = ee.theEdge(); 
} 

Является ли это правильный способ делать то, что я делаю?

ВАЖНЫЙ РЕДАКТОР: Мой плохой. Мне не нужно менять рельеф, я должен направить его.

+0

Как вы можете перевернуть ребро на неориентированном графе? Я толстый? – john

+0

Извините за это. Как мне направить существующий край? Или, возможно, замените его на новый? – divs1210

ответ

2

Основываясь на documentation, вы можете удалить край, используя delEdge и добавить новый край, используя newEdge. Неориентированный граф может быть действительно направленным графом с двумя направленными ребрами для каждого неориентированного ребра. Если это так, удалите край, который вам больше не нужен. Например, чтобы направить неориентированный ребро (u, v) из u в v, удалить направленное ребро (v, u), поэтому единственным оставшимся направленным ребром является (u, v). Вы можете найти край для удаления с помощью метода searchEdge.