Update debugs

This commit is contained in:
Guilherme Werner
2023-06-18 14:33:12 -03:00
parent 345111b01e
commit 9fa159b94e
3 changed files with 29 additions and 29 deletions

View File

@ -2,19 +2,8 @@
void Graph::PrintIncidenceMatrix()
{
cout << " ";
for (int j = 0; j < edges; j++)
{
cout << j << " ";
}
cout << endl;
for (int i = 0; i < nodes; i++)
{
cout << i << " ";
for (int j = 0; j < edges; j++)
{
int val = this->matrix[i][j];
@ -35,6 +24,11 @@ void Graph::PrintIncidenceMatrix()
cout << endl;
}
void Graph::PrintAdjacencyMatrix()
{
Graph::_PrintAdjacencyMatrix(this->GetAdjacencyMatrix());
}
void Graph::AddEdge(int u, int v)
{
this->matrix[u][this->edges] = 1;
@ -117,7 +111,7 @@ Graph *Graph::ToTransitiveClosure()
}
cout << "TC:" << endl;
Graph::PrintAdjacencyMatrix(closure);
Graph::_PrintAdjacencyMatrix(closure);
return new Graph(closure, closure.size());
}

View File

@ -77,6 +77,8 @@ public:
public:
void PrintIncidenceMatrix();
void PrintAdjacencyMatrix();
void AddEdge(int u, int v);
vector<vector<int>> GetAdjacencyMatrix();
@ -86,23 +88,6 @@ public:
Graph *ToTransitiveClosure();
public:
static void PrintAdjacencyMatrix(const vector<vector<int>> &adjacency)
{
int nodes = adjacency.size();
for (int i = 0; i < nodes; i++)
{
for (int j = 0; j < nodes; j++)
{
cout << adjacency[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
static vector<vector<int>> MultiplyIncidenceMatrix(const vector<vector<int>> &left, const vector<vector<int>> &right)
{
int rows1 = left.size();
@ -130,4 +115,22 @@ public:
return result;
}
private:
void _PrintAdjacencyMatrix(const vector<vector<int>> &adjacency)
{
int nodes = adjacency.size();
for (int i = 0; i < nodes; i++)
{
for (int j = 0; j < nodes; j++)
{
cout << adjacency[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
};

View File

@ -11,17 +11,20 @@ int main()
cout << "M1:" << endl;
g1->PrintIncidenceMatrix();
g1->PrintAdjacencyMatrix();
auto m1 = g1->GetIncidenceMatrix();
Graph *g2 = g1->ToTransitiveClosure();
cout << "M2:" << endl;
g2->PrintIncidenceMatrix();
g2->PrintAdjacencyMatrix();
auto m2 = g2->GetIncidenceMatrix();
auto m3 = Graph::MultiplyIncidenceMatrix(m1, m2);
Graph *g3 = new Graph(m3);
cout << "M3:" << endl;
g3->PrintIncidenceMatrix();
g3->PrintAdjacencyMatrix();
return 0;
}