#pragma once #include "../../common/common.h" #include "../../classes/linkgraph.h" struct Edge_weighted{ int toward, next; }; py::object plain_bfs(py::object G, py::object source); py::object connected_component_undirected(py::object G); inline void _union_node(const int &u, const int &v, std::vector& parent, std::vector &rank_node); int _getfa(const int & x, std::vector &parent); py::object connected_component_directed(py::object G); void _tarjan(const int &u, int *Time, int *cnt, int *Tot, std::vector& E, std::vector& head, std::vector &dfn, std::vector &low, std::vector &st, std::vector &color, std::vector &in_stack, std::vector &E_res, std::vector &head_res, int *edge_number_res); void _add_edge_res(const int &u, const int &v, std::vector &E_res, std::vector &head_res, int *edge_number_res);