Mavzu: Kommivoyajer masalasi algoritmlarini o'rganish, chuqurlik va eni bo'yicha aylanib o'tuvchi graflar, kommivoyajer masalasini echish


Masalaning quyilishi: berilgan n = 4, e = 6 2 -> 0, 0 -> 2, 1 -> 2, 0 -> 1, 3 -> 3, 1 -> 3 grafning 2 uchidan boshlab chuqurligini aniqlash


Download 72.34 Kb.
bet7/7
Sana30.10.2021
Hajmi72.34 Kb.
#169478
1   2   3   4   5   6   7
Bog'liq
KARIMOV ASADBEK 21-19

Masalaning quyilishi: berilgan n = 4, e = 6 2 -> 0, 0 -> 2, 1 -> 2, 0 -> 1, 3 -> 3, 1 -> 3 grafning 2 uchidan boshlab chuqurligini aniqlash;

  • Masalaning quyilishi: berilgan n = 4, e = 6 2 -> 0, 0 -> 2, 1 -> 2, 0 -> 1, 3 -> 3, 1 -> 3 grafning 2 uchidan boshlab chuqurligini aniqlash;
  • Dastur kodi:#include
  • using namespace std;
  • class Graph
  • {
  • int V; list *adj;
  • void DFSUtil(int v, bool visited[]);
  • public:
  • Graph(int V); // Constructor
  • // function to add an edge to graph
  • void addEdge(int v, int w);
  • void DFS(int v);
  • };
  • Graph::Graph(int V){ this->V = V;
  • adj = new list[V];
  • } void Graph::addEdge(int v, int w){ adj[v].push_back(w);} void Graph::DFSUtil(int v, bool visited[]){ visited[v] = true;cout << v << " ";
  • list::iterator i;
  • for (i = adj[v].begin(); i != adj[v].end(); ++i)
  • if (!visited[*i])
  • DFSUtil(*i, visited);
  • }

void Graph::DFS(int v)

  • void Graph::DFS(int v)
  • {
  • bool *visited = new bool[V];
  • for (int i = 0; i < V; i++)
  • visited[i] = false;
  • DFSUtil(v, visited);
  • }
  • int main(){
  • Graph g(4);g.addEdge(0, 1);
  • g.addEdge(0, 2);
  • g.addEdge(1, 2);
  • g.addEdge(2, 0);
  • g.addEdge(2, 3);
  • g.addEdge(3, 3);
  • cout << "gragning chuqurliga"
  • " (2 dan boshlab) \n";
  • g.DFS(2);
  • return 0; }

Download 72.34 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling