void TopologicSSSP::relaxEdge(int sourceComponent, int targetComponent, edge e) { if( m_componentDistanceArray[sourceComponent] + e->getWeight() < m_componentDistanceArray[targetComponent]) { m_componentDistanceArray[targetComponent] = m_componentDistanceArray[sourceComponent] + e->getWeight(); m_componentPredsArray[targetComponent] = e->getSource(); m_componentBestArray[targetComponent] = e->getTarget(); } }
bool operator() (edge &e1, edge &e2) { return e2.getWeight() < e1.getWeight(); }