Clone graphs code

This commit is contained in:
Guilherme Werner
2023-06-10 15:35:35 -03:00
parent 3e4ce42710
commit 4a25a5f48d
6 changed files with 178 additions and 0 deletions

44
Source/Graph.h Normal file
View File

@ -0,0 +1,44 @@
#pragma once
#include <algorithm>
#include <bits/stdc++.h>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <list>
#include <sstream>
#include <string.h>
#include <thread>
using namespace std;
class Graph
{
private:
int length;
list<int> *adj;
public:
Graph(int length)
{
this->length = length;
this->adj = new list<int>[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<int> &disc, vector<int> &low, vector<int> &parent, vector<pair<int, int>> &bridge);
int DFSCount(int v, bool visited[]);
};