Mam do przepisania ten algorytm z pascala do cpp, Depth First Search Algorithm
, Nie wiem co robie źlę, wynik w ogóle się nie pojawia, doradzi ktos?
DFS-Visit(G, u)
begin
color(u) := szary;
for each v ∈ Adj[u] do
if kolor(v) = biały then DFS-Visit(G, v);
color(u) := czarny;
end;
using namespace std;
#include <list>
#include <iostream>
void print(list<int> &lista)
{
for (auto const &i: lista) {
cout << i << endl;
}
}
void DFS_Visit(string *kolor, list<int> Adj, int u)
{
kolor[u] = "szary";
for (int i = 0; i < Adj.size(); i++)
{
if (kolor[i] == "bialy")
{
DFS_Visit(&kolor[i], Adj, u);
}
}
kolor[u] = "czarny";
}
int main()
{
int n = 8;
int u = 0;
list<int> *Adj = new list<int>[n];
Adj[0].push_back(1);
Adj[0].push_back(4);
Adj[1].push_back(0);
Adj[1].push_back(2);
Adj[1].push_back(7);
Adj[2].push_back(1);
Adj[2].push_back(4);
Adj[2].push_back(5);
Adj[3].push_back(4);
Adj[4].push_back(0);
Adj[4].push_back(2);
Adj[4].push_back(3);
Adj[4].push_back(5);
Adj[5].push_back(2);
Adj[5].push_back(4);
Adj[5].push_back(6);
Adj[6].push_back(5);
Adj[6].push_back(7);
Adj[7].push_back(1);
Adj[7].push_back(6);
string *kolor = new string[n];
for (int i = 0; i < n; i++){kolor[i] = "bialy";}
DFS_Visit(kolor, *Adj, u);
print(*Adj);
delete[] kolor;
delete[] Adj;
return 0;
}