#pragma once #include #include #include #include #include #include #include #include #include using namespace std; class Graph { private: int length; list *adj; public: Graph(int length) { this->length = length; this->adj = new list[length]; } ~Graph() { delete[] adj; } public: void Print(); void Insert(int u, int v); void InsertD(int u, int v); void Remove(int u, int v); void RemoveD(int u, int v); Graph *Clone(); private: void DFS(int u, vector &disc, vector &low, vector &parent, vector> &bridge); int DFSCount(int v, bool visited[]); };