fix GetAdjacendEdgeRange of matrix wrapper for tarjan scc and fix wrongly solved merge conflict
This commit is contained in:
parent
78a8cf6982
commit
2de3fc9f6f
@ -52,6 +52,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
template <typename GraphT> class TarjanSCC
|
||||
{
|
||||
@ -192,6 +193,7 @@ template <typename GraphT> class TarjanSCC
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
std::size_t get_number_of_components() const { return component_size_vector.size(); }
|
||||
|
||||
std::size_t get_size_one_count() const { return size_one_counter; }
|
||||
@ -201,12 +203,9 @@ template <typename GraphT> class TarjanSCC
|
||||
return component_size_vector[component_id];
|
||||
}
|
||||
|
||||
unsigned get_component_size_by_id(const unsigned component_id) const
|
||||
{
|
||||
return component_size_vector[component_id];
|
||||
}
|
||||
|
||||
unsigned get_component_id(const NodeID node) const { return components_index[node]; }
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif /* TARJAN_SCC_HPP */
|
||||
|
@ -42,13 +42,13 @@ public:
|
||||
return number_of_nodes_;
|
||||
}
|
||||
|
||||
std::vector<EdgeWeight> GetAdjacentEdgeRange(const NodeID node) const {
|
||||
std::vector<EdgeWeight> edges;
|
||||
auto neq_invalid_edge_weight = [](EdgeWeight e){return (e != INVALID_EDGE_WEIGHT);};
|
||||
std::copy_if(std::begin(table_),
|
||||
std::end(table_),
|
||||
std::back_inserter(edges),
|
||||
neq_invalid_edge_weight);
|
||||
std::vector<T> GetAdjacentEdgeRange(const NodeID node) const {
|
||||
std::vector<T> edges;
|
||||
for (auto i = 0; i < number_of_nodes_; ++i) {
|
||||
if (*(std::begin(table_) + node * number_of_nodes_ + i) != INVALID_EDGE_WEIGHT) {
|
||||
edges.push_back(i);
|
||||
}
|
||||
}
|
||||
return edges;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user